zoukankan      html  css  js  c++  java
  • List集合--Vector子类

    Vector子类
      Vector是一个原始古老的程序类,这个类是在JDK1.0的时候就提供的,而后到了JDK1.2的时候,由于有一部分开发者已经习惯于使用Vector,并且许多的系统类也是基于Vector实现的,考虑到其使用的广泛性,所以类集框架将其保存下来,并且让其多实现了一个List的接口.
    --观察Vector的定义结构

    --可以发现继承结构与ArratList是相同的

     1 public class VectorDemo {
     2     public static void main(String[] args) {
     3         List<String> all = new Vector<>();
     4         all.add("hello");
     5         all.add("hello");
     6         all.add("world");
     7         all.add("test");
     8         all.forEach(System.out::println);
     9     }
    10 }

    --运行结果

    hello
    hello
    world
    test
    
    Process finished with exit code 0

    --进一步观察Vector类的实现:

    public Vector() {
    this(10);
    }
    public Vector(int initialCapacity) {
    this(initialCapacity, 0);
    }
    public Vector(int initialCapacity, int capacityIncrement) {
    super();
    if (initialCapacity < 0)
    throw new IllegalArgumentException("Illegal Capacity: "+
    initialCapacity);
    this.elementData = new Object[initialCapacity];
    this.capacityIncrement = capacityIncrement;
    }

    --Vector类如果使用的是无参的构造方法,则一定会开辟一个10个长度的数组,而后其余的实现操作与ArrayList是相同的.通过查看源代码,可以发现Vectory中的方法采用的都是Synchronized同步处理,而ArrayList中并没有进行同步处理,所以Vector中的方法在多线程访问的时候是属于线程安全的,但是性能不如ArrayList高.

  • 相关阅读:
    Java虚拟机--编译那点事儿
    Java虚拟机--常用Java命令(二)
    Java虚拟机--常用Java命令(一)
    Java虚拟机--类加载机制
    Java虚拟机--JIT编译器
    Java虚拟机--垃圾回收机制
    Java虚拟机--对象模型
    Junit测试--多个测试接口如何产生业务联系
    Java虚拟机--内存模型
    Java虚拟机--内存结构
  • 原文地址:https://www.cnblogs.com/skykuqi/p/11446534.html
Copyright © 2011-2022 走看看