色欲av一区久久精品_久久综合色综合色88_无码在线观看不卡_色黄视频网站_亚洲国产精品久久久久秋霞66

Java常見(jiàn)的線(xiàn)程安全相關(guān)的面試題

時(shí)間:2023-05-16

過(guò)程1:HashMap和Hashtable的差異
HashMap和Hashtable都完成了Map接口,都是鍵值對(duì)保存數(shù)據(jù)的方式
差異1:
HashMap可以存放null
Hashtable不能存放null
差異2:
HashMap不是線(xiàn)程安全的類(lèi)
Hashtable是線(xiàn)程安全的類(lèi)
HashMap和Hashtable的差異
過(guò)程2:StringBuffer和StringBuilder的差異
StringBuffer是線(xiàn)程安全的
StringBuilder對(duì)錯(cuò)線(xiàn)程安全的Java
所以當(dāng)進(jìn)行大量字符串拼接操作的時(shí)候,如果是單線(xiàn)程就用StringBuilder會(huì)更快些,如果是多線(xiàn)程,就需要用StringBuffer確保數(shù)據(jù)的安全性
非線(xiàn)程安全的為什么會(huì)比線(xiàn)程安全的快?因?yàn)椴恍枰铰?,省略了些時(shí)刻
StringBuffer和StringBuilder的差異
過(guò)程3:ArrayList和Vector的差異
通過(guò)在eclipse中查看源代碼可以得知:
ArrayList類(lèi)的聲明:
publicclassArrayListextendsAbstractListimplementsList<E>,RandomAccess,Cloneable,java.io.Serializable
Vector類(lèi)的聲明:
publicclassVectorextendsAbstractListimplementsList<E>,RandomAccess,Cloneable,java.io.Serializable
一模一樣的~
他們的差異也在于,Vector是線(xiàn)程安全的類(lèi),而ArrayList對(duì)錯(cuò)線(xiàn)程安全的。
過(guò)程4:把非線(xiàn)程安全的集合轉(zhuǎn)換為線(xiàn)程安全
ArrayList對(duì)錯(cuò)線(xiàn)程安全的,換句話(huà)說(shuō),多個(gè)線(xiàn)程可以一起進(jìn)入一個(gè)ArrayList目標(biāo)的add辦法
借助Collections.synchronizedList,可以把ArrayList轉(zhuǎn)換為線(xiàn)程安全的List。
與此類(lèi)似的,還有HashSet,LinkedList,HashMap等等非線(xiàn)程安全的類(lèi),都通過(guò)東西類(lèi)Collections轉(zhuǎn)換為線(xiàn)程安全的
packagemultiplethread;importjava.util.ArrayList;importjava.util.Collections;importjava.util.List;publicclassTestThread{publicstaticvoidmain(String[]args){
Listlist1=newArrayList<>();
Listlist2=Collections.synchronizedList(list1);
}
}

文章標(biāo)簽:

Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權(quán)利。 粵ICP備09033321號(hào)

與項(xiàng)目經(jīng)理交流
掃描二維碼
與項(xiàng)目經(jīng)理交流
掃描二維碼
與項(xiàng)目經(jīng)理交流
ciya68