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基础--数据结构比较)