过程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);
}
}

1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com