ArrayList、LinkedList、vector、CopyOnWriteArrayList的区别

ArrayListLinkedListvectorCopyOnWriteArrayListCollections.synchronizedList
Object数组,用transient修饰,防止序列化双向链表动态数组,用volatile transient修饰,保证写后读立即可见数组
重写readObject和writeObject方法,提高传输效率根据index决定从头还是从尾开始遍历内部只有一个ReentrantLock锁,增删改时都会加锁,保证写时只有一个线程在进行
不安全不安全使用synchronized,所有方法都加锁,安全安全安全
初始容量10初始容量 0初始容量0
扩容0.5倍,若还不够,扩大到正好填满为止,将旧数据拷贝到新数组中容量满后自动扩容1倍,将旧数据拷贝到新数组中无锁并发读,写时先上锁,保证不copy过多副本,再对数组副本操作,覆盖原数组;读取无竞争,修改时访问的依然是原数组内容,性能比vector高并发写性能高,与CopyOnWriteArrayList代替vector

把变量从内存中变成可存储或传输的过程称之为序列化。序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化。

transient的生命周期仅存于调用者的内存中而不会写到磁盘里持久化。

volatile 是一个类型修饰符。volatile 的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略。有实现可见性和实现有序性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值