過(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)程安全的
所以當(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);
}
}
廣州天河區(qū)珠江新城富力盈力大廈北塔2706
020-38013166(網(wǎng)站咨詢(xún)專(zhuān)線(xiàn))
400-001-5281 (售后服務(wù)熱線(xiàn))
深圳市坂田十二橡樹(shù)莊園F1-7棟
Site/ http://www.szciya.com
E-mail/ itciya@vip.163.com
品牌服務(wù)專(zhuān)線(xiàn):400-001-5281
長(zhǎng)沙市天心區(qū)芙蓉中路三段398號(hào)新時(shí)空大廈5樓
聯(lián)系電話(huà)/ (+86 0731)88282200
品牌服務(wù)專(zhuān)線(xiàn)/ 400-966-8830
旗下運(yùn)營(yíng)網(wǎng)站:
Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權(quán)利。 粵ICP備09033321號(hào)