Vector类的源码分析[java]

Vector类的源码分析:

jdk7和jdk8中Vector类的源码也几乎一样,所以这里我们也是一起进行分析

  1. jdk7和jdk8中通过Vector()构造方法创建对象时,底层都是创建了长度为10的数组(Object [] elementDate)
  2. 在扩容方面Vector类扩容都是扩容为2倍
Vector是线程安全的,那么当我们的集合作为共享元素的话,这个时候我们如果是创建了ArrayList集合对象直接进行操作显然是不行的,因为我们的ArrayList是线程不安全的,那么这个时候我们就要使用Vector对象来作为共享资源吗?
  • 显然这个时候我们使用Vector对象作为共享资源也是可以的,因为我们的Vector是线程安全的
  • 但是在实际编程中我们还是使用ArrayList集合作为共享资源来使用,那么我们的ArrayList是线程不安全的,这个时候我们直接使用ArrayList是不行的,那么这个时候要使用到工具类Collections中的SynchronizedList(List< E> list)方法,通过synchronized(List< E> list)方法我们传入一个ArrayList对象就可以得到一个线程安全的ArrayList对象
    • 这里的Collections是一个工具类
      • Collections的全类名 : java.lang.Collections
    • Collections类中的 synchronized(List< E> list)
      • 这个方法中传入一个ArrayList集合就会得到一个线程安全的ArrayList对象
      • 我们的ArrayList原本是线程不安全的,这个时候我们通过传入到synchronized(List < E> list)方法中我们就可以得到一个线程安全的ArrayList对象
  • 所以这里就说明即使我们是遇到List集合对象作为多个线程的共享资源时,我们也不使用Vector类
    • 这个时候其实就反映出我们的Vector类中其实我们已经不怎么去使用了
也就是说:我们的Vector已经在等待某一天被Deprecated了
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值