标签:intern table 有序 cell new lis 直接 padding 线程安全
原本我打算上一篇就聊完经历就直接讲讲集合的,结果写了很多根本停不下来,所以决定新开一篇了
既然要研究集合,网络上的资源一般也是从4个维度来分析的
1.是否允许为空
2.是否允许重复的数据
3.是否有序:储存的顺序和读取的顺序是否是一致
4.线程是否是安全。
首先我们先来看一下ArrayList
是否允许为空 | 可以为空 |
是否允许重复 | 可以重复 |
是否有序 | 有序 |
是否线程安全 | 线程不安全 |
先贴上一段代码看看,验证
List<String> list = new ArrayList<String>(); list.add("a"); list.add(null); list.add("a"); list.add("b"); System.out.println(list.toString());
[a, null, a, b]
add方法快并无synchronized修饰,因此线程是不安全的
public boolean add(E e) { ensureCapacityInternal(size + 1); // Increments modCount!! elementData[size++] = e; return true; }
标签:intern table 有序 cell new lis 直接 padding 线程安全
原文地址:http://www.cnblogs.com/sunshine798798/p/7730016.html