jvm直接內(nèi)存如何回收 java的容器有哪些?
java的容器有哪些?Java容器包括以下內(nèi)容:list、map、set、collection、list、LinkedList、ArrayList、vector、stack、set map、hasht
java的容器有哪些?
Java容器包括以下內(nèi)容:list、map、set、collection、list、LinkedList、ArrayList、vector、stack、set map、hashtable、HashMap、weakhashmap。數(shù)據(jù)容器主要分為兩類:集合:存儲獨(dú)立元素的序列。Map:存儲鍵值類型元素對。(這對于需要使用鍵來查找值的程序非常重要!)從類圖可以看出,collection定義了collection類數(shù)據(jù)最基本、最常用的功能接口,list擴(kuò)展了接口。每個類的應(yīng)用場景都有很大的不同,所以我們應(yīng)該根據(jù)需要靈活選擇。本文介紹了四種最常用的容器:LinkedList,它的數(shù)據(jù)結(jié)構(gòu)是鏈表。這種結(jié)構(gòu)的優(yōu)點(diǎn)是刪除和添加的效率很高,但是隨機(jī)訪問元素的及時性比ArrayList類要低。ArrayList:它的數(shù)據(jù)結(jié)構(gòu)是線性表。這種結(jié)構(gòu)的優(yōu)點(diǎn)是訪問和查詢非常方便,但是添加和刪除的效率很低。HashSet:set類中不允許有重復(fù)的元素(集合)。無法添加重復(fù)的元素(集)。HashSet使用hash函數(shù)優(yōu)化查詢效率,其contain()方法常用于判斷是否添加了相關(guān)元素。HashMap:提供了鍵值數(shù)據(jù)存儲機(jī)制,通過鍵值查找對應(yīng)的元素非常方便,通過hash機(jī)制查找也非常方便。
如何領(lǐng)悟Java三大框架?
Hibernate:
Hibernate主要通過ORM(對象關(guān)系映射)和框架配置文件實(shí)現(xiàn)。讓實(shí)體類和數(shù)據(jù)庫表一一對應(yīng)。讓實(shí)體類先對應(yīng)數(shù)據(jù)庫表,讓實(shí)體類的屬性逐一對應(yīng)數(shù)據(jù)庫表中的字段。這樣,就不需要操作數(shù)據(jù)庫表,而需要操作表中相應(yīng)的實(shí)體類對象。以實(shí)現(xiàn)相應(yīng)的添加、刪除、修改和查詢操作。
Mybatis不是一個完整的ORM框架。mybatis的SQL需要開發(fā)人員自己編寫,但是它也提供了輸入和輸出的自動映射,因此可以認(rèn)為它是一個半自動的ORM框架。Mybatis可以靈活配置SQL語句通過XML或注解運(yùn)行,映射Java對象和SQL語句生成最終SQL,最后映射SQL執(zhí)行結(jié)果生成Java對象,對于客戶需求的變化更為靈活。但靈活性的前提是mybatis不能獨(dú)立于數(shù)據(jù)庫。如果需要實(shí)現(xiàn)支持多個數(shù)據(jù)庫的軟件,則需要自定義多組SQL映射文件,這是一個繁重的工作負(fù)載。Hibernate具有很強(qiáng)的對象關(guān)系映射能力和良好的數(shù)據(jù)庫無關(guān)性。
Struts2:
Struts2處理請求是為每個請求創(chuàng)建一個單獨(dú)的操作類。action類中的字段屬性參數(shù)用作輸入和輸出參數(shù),IOC用于依賴注入。它是基于類的開發(fā)。
類似地,SpringMVC使用輸入請求和響應(yīng)作為參數(shù),并返回modelandview,這是一種單例模式和基于方法的模式。
Spring:Spring的核心概念是di(依賴注入)和AOP(面向方面編程)。Di也稱為IOC(控制反轉(zhuǎn))。使用spring,可以通過IOC從spring容器中獲取所有對象。每個物體通過彈簧注入到相應(yīng)的位置。通過IOC,spring可以在下一個對象注入(DI)之前創(chuàng)建對象,因此DI依賴于IOC。