java基础--数据结构比较

一、HashMap与Hashtable区别
HashMap:非线程安全,允许键和值null。
Hashtable:线程安全,不允许键和值null。
CorrentHashMap:线程安全,不允许键和值null。

二、CorrentHashMap的工作原理
jdk1.8中在HashMap基础上堆Node中Value和next都用volatile修饰来保证并发的可见性。
jdk1.7中采用分段锁,一个CorrentHashMap相当于多个Segment(桶)组合,每个segment相当于一个Hashtable,这样相对于整体每次只锁Segment而不是锁整张表。

三、Array和ArrayList区别
Array:可以容纳基本类型和对象,大小固定。
ArrayList:只容纳对象,大小动态变化(扩容,每次扩充当前一般,复制数据)。

四、ArrayList与LinkeList区别
ArrayList LinkeList
实现List接口 实现List接口
基于数组 基于链表
O(1) O(n)
查找速度快 插入添加删除快
更占内存,多了俩个引用前后元素

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java SE 基础: 封装、继承、多态 封装: 概念:就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽...
    Jayden_Cao阅读 2,157评论 0 8
  • 九种基本数据类型的大小,以及他们的封装类。(1)九种基本数据类型和封装类 (2)自动装箱和自动拆箱 什么是自动装箱...
    关玮琳linSir阅读 1,939评论 0 47
  • java基础 集合承继包含图 Collection vs Collections 首先,"Collection" ...
    onlyHalfSoul阅读 1,361评论 0 5
  • 面向对象的三个特征 封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象. 多态的好处 允许不同类对象对同一消...
    Blizzard_liu阅读 1,680评论 0 6
  • 本系列出于AWeiLoveAndroid的分享,在此感谢,再结合自身经验查漏补缺,完善答案。以成系统。 Java基...
    济公大将阅读 1,544评论 1 6