• Vector、ArrayList异同和HTTP请求异同的概括和区别


    今天我所记录的是两个异同的概括:

    HTTP:

    同步请求:提交请求->等待服务器处理->处理完毕返回给客户端  这个期间客户端浏览器只能处于等待状态,得到回应才可以执行下一步操作。

    异步请求:请求通过事件触发->服务器处理->处理完毕  服务器处理期间还未返回结果之前客户端可以执行其他操作。

    集合:

    Vector(同步类):

    1.是一个自动增长的对象数组,所以无需声明数组上限,并且vector提供额外的增加,删除元素,比数组操作高效。

    2.vector相对于线程是安全的(前提是加上 synchronized进行同步),在一个时间点只有一个线程可以对vector对象进行操作,但是vector的安全可以说是用效率换来的,效率不高。

    3.Vector是唯一一个既有Enumeration,又有Iterator进行遍历的类,而ArrayList只有Iterator。

    // Vector的增加方法
    public synchronized boolean add(E e) {
        modCount++;
        ensureCapacityHelper(elementCount + 1);
        elementData[elementCount++] = e;
        return true;
    }

    ArrayList(异步类):

    1.是一个动态数组,随机访问速度快,插入和移除性能较差,并且支持null元素、有顺序、元素可以重复。

    2.arraylist相对于线程是不安全的,每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加,但是增长算法并没有定义。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。

    // ArrayList的新增方法
    public boolean add(E e) {
        ensureCapacityInternal(size + 1);
        elementData[size++] = e;
        return true;
    }
  • 相关阅读:
    unity3d 打包个人记录
    Unity3d 协程
    Unity3d 复制文字到剪切板及存储图像到相册
    为什么 redo log 具有 crash-safe 的能力,是 binlog 无法替代的?
    Java源码系列4——HashMap扩容时究竟对链表和红黑树做了什么?
    深入理解Java虚拟机1——内存区域
    Java源码系列3——LinkedHashMap
    深入理解Java虚拟机2——对象探秘
    高效学习
    WordPress自动代码高亮
  • 原文地址:https://www.cnblogs.com/huangting/p/10898729.html
Copyright © 2020-2023  润新知