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;
}
原文地址:https://www.cnblogs.com/huangting/p/10898729.html