过程1:HashMap和Hashtable的差异
HashMap和Hashtable都完成了Map接口,都是键值对保存数据的方式
差异1:
HashMap可以存放null
Hashtable不能存放null
差异2:
HashMap不是线程安全的类
Hashtable是线程安全的类
HashMap和Hashtable的差异
过程2:StringBuffer和StringBuilder的差异
StringBuffer是线程安全的
StringBuilder对错线程安全的
所以当进行大量字符串拼接操作的时候,如果是单线程就用StringBuilder会更快些,如果是多线程,就需要用StringBuffer确保数据的安全性
非线程安全的为什么会比线程安全的快?因为不需要同步嘛,省略了些时刻
StringBuffer和StringBuilder的差异
过程3:ArrayList和Vector的差异
通过在eclipse中查看源代码可以得知:
ArrayList类的声明:
publicclassArrayListextendsAbstractListimplementsList<E>,RandomAccess,Cloneable,java.io.Serializable
Vector类的声明:
publicclassVectorextendsAbstractListimplementsList<E>,RandomAccess,Cloneable,java.io.Serializable
一模一样的~
他们的差异也在于,Vector是线程安全的类,而ArrayList对错线程安全的。
过程4:把非线程安全的集合转换为线程安全
ArrayList对错线程安全的,换句话说,多个线程可以一起进入一个ArrayList目标的add办法
借助Collections.synchronizedList,可以把ArrayList转换为线程安全的List。
与此类似的,还有HashSet,LinkedList,HashMap等等非线程安全的类,都通过东西类Collections转换为线程安全的
packagemultiplethread;importjava.util.ArrayList;importjava.util.Collections;importjava.util.List;publicclassTestThread{publicstaticvoidmain(String[]args){
Listlist1=newArrayList<>();
Listlist2=Collections.synchronizedList(list1);
}
}
广州天河区珠江新城富力盈力大厦北塔2706
020-38013166(网站咨询专线)
400-001-5281 (售后服务热线)
品牌服务专线:400-001-5281
长沙市天心区芙蓉中路三段398号新时空大厦5楼
联系电话/ (+86 0731)88282200
品牌服务专线/ 400-966-8830
旗下运营网站:
Copyright © 2016 2024澳门原料网1688白老虎,保留所有权利。 粤ICP备09033321号