Vector与ArrayList,HashMap与HashTable

开发中哪些地方遇到线程安全的:

  • 集合有些是线程安全的有些是线程不安全的。

Vector与ArrayList

区别:线程安全

  • 查看源码,我们就可以看到,Vector 中的add方法加了synchronized修饰,实现了线程同步,所以是线程安全的,而ArrayList的add方法没有加synchronized修饰,所以是线程不安全的。所以在多线程共享Vector 集合做add操作的时候,效率不高。而ArrayList反而效率会更高。

HashMap与HashTable

区别:线程安全

  • HashTable是线程安全的
  • HashMap是线程不安全的
  • 实现原理:链表+数组 put方法+hashcode取模
  • put方法:HashTable加了synchronized修饰;HashMap的没有加synchronized修饰,没有实现同步
  • get方法:HashTable加了synchronized修饰,保证线程安全。但是查询效率不高。HashMap的没有加synchronized修饰,没有实现同步,所以效率不较高。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在一个方法内部定义的变量都存储在栈中,当这个函数运行结束后,其对应的栈就会被回收,此时,在其方法体中定义的变量将不...
    Y了个J阅读 9,915评论 1 14
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,572评论 18 399
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 11,951评论 0 62
  • 张某就职于一家互联网公司,由于公司最近承接了新项目,要求所有员工在完成自己的工作后都加班帮技术部测试项目,已经连续...
    树袋熊不是树呆熊阅读 3,508评论 0 0
  • 不知道你们有没有跟狗玩过丢球或者飞盘的游戏,它们只盯着一个目标奔跑的样子,很可爱。再仔细看一次,你又会觉得很感动。...
    陈皓07阅读 3,715评论 0 0

友情链接更多精彩内容