CopyOnWriteArrayList初始容量是多少?
答案:是0
CopyOnWriteArrayList是怎么进行扩容的?
答案:
加锁
创建一个新数组,长度原数组长度+1,并把原数组元素拷贝到新数组里面。
释放锁
CopyOnWriteArrayList是怎么保证线程安全的?
答案:
使用ReentrantLock加锁,保证操作过程中线程安全。
使用volatile关键字修饰数组,保证当前线程对数组对象重新赋值后,其他线程可以及时感知到。