今天我所记录的是两个异同的概括:
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; }