Vectory源码解析

本文详细解析了Java中的Vector容器,强调其线程安全特性,并对比了Vector与ArrayList的区别。从源码层面探讨了Vector的内部实现,包括其基于对象数组的数据存储方式。在实际开发中,当线程安全的需求出现时,可以考虑使用Vector。
摘要由CSDN通过智能技术生成

Vectory注意事项

  • Vectory的基本介绍

    • Vectory 底层也是一个对象数组,protected Object[] elementData;

    • Vectory 是线程同步的,即线程安全,Vectory类的操作方法带有synchronized

      public synchronized boolean add(E e) {
          modCount++;
          ensureCapacityHelper(elementCount + 1);
          elementData[elementCount++] = e;
          return true;
      }

    • 在开发中,需要线程同步安全时,考虑使用Vector

Vectory源码分析

  • Vector和ArrayList的比较:

底层结构 版本 线程安全(同步)效率 扩容倍数
ArrayList 可变数组 jdk1.2 不安全,效率高 如果有参构造1.5倍;如果无参构造:第一次10,第二次按照1.5倍扩容
Vector 可变数组 jdk1.0 安全,效率不高 如果时无参,默认10,满后,按照2倍扩容;如果指定大小,则每次直接按照2倍扩容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值