java常用集合的理解、泛型、反射

set(無序,不可重復(fù),線程不安全,增加刪除快,查詢慢)

Set是無序的,指的是隊(duì)列排列結(jié)果無法預(yù)知,不是按照插入順序排列。所以,

TreeSet既成自Set,無序,但是結(jié)果是按照二叉樹排列,HashSet安裝哈希表排列。

Set的排序:

自然排序:

1、TreeSet的add會(huì)把對(duì)象升級(jí)為Comparable類型

2、add的時(shí)候調(diào)用compareTo方法比較

3、安裝compareTo方法進(jìn)行排序存儲(chǔ)

比較器比較

1、創(chuàng)建TreeSet的時(shí)候接收Compator

2、add的時(shí)候調(diào)用Compator的compare方法

3、安裝compareTo方法進(jìn)行排序存儲(chǔ)

List(有序,可以重復(fù),線程不安全)

線程不安全的解決辦法(裝飾)

List list=Collections.synchronizedList(newLinkedList(...));

子類有ArrayList,LinkedList,Queue,

ArrayList的底層是可變數(shù)組,隨著元素增大按照50%擴(kuò)容(即變成原來的1.5倍),新增刪除慢,查詢?cè)乜?/p>

LinkedList底層是鏈表,新增刪除快,查詢?cè)芈?/p>

HashMap和Hashtable的區(qū)別

1、HashMap可以保存null key和null value,但是Hashtable不可以

2、HashMap是線程不安全的,Hashtable是線程安全的。多個(gè)線程可以共享一個(gè)Hashtable,而沒有正確同步的話,多個(gè)線程是不能共享HashMap的。

3、正是因?yàn)镠ashtable是線程安全的,所以在單線程的情況下Hashtable的效率比較低,應(yīng)該選擇HashMap。

HashMap可以通過下面的語句進(jìn)行同步:

Map m = Collections.synchronizeMap(hashMap);

HashMap和TreeMap的區(qū)別

HashMap 的底層是哈希表,非線程安全的,允許null 的key和null的value。key不能重復(fù),value可以重復(fù)。

TreeMap的底層是紅黑樹。非線程安全,不允許null。value可以重復(fù)。不能重復(fù),value可以重復(fù)。

JDK 1.5后新特性

1、泛型

2、裝箱和拆箱

3、可變參數(shù)

4、枚舉

5、增強(qiáng)for循環(huán)

6、靜態(tài)導(dǎo)入

java中類加載器、反射、動(dòng)態(tài)代理之間的關(guān)系

1、類加載器是用來把一個(gè)類的.class文件從硬盤中加載到虛擬機(jī)上變成對(duì)象的類。

Bootstrap classloader、extention classloader、app classloader

2、反射是通過字節(jié)碼文件對(duì)象將字段,方法,構(gòu)造等成員變量映射成響應(yīng)的類,獲取并操作類的成員變量的技術(shù)。

3、動(dòng)態(tài)代理中通過反射調(diào)用目標(biāo)方法,是反射的應(yīng)用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容