资料里说vector和arrylist区别主要是同步和异步,不太明白这里的同步和异步的具体含义。
有谁能形象描述一下吗?这也是我在面试的时候经常碰到的题目,大家来探讨一下吧!

解决方案 »

  1.   

    Vector is synchronized,while ArrayList is not
      

  2.   

    Vector是同步的,ArrayList是非同步的,这意味着:如果你有多个线程同时访问一个ArrayList,并且其中至少有一个要做修改操作,那你必须自己负责同步,最简单的方式是使用这个ArrayList本身来同步List list = new ArrayList();在某个线程中:synchronized(list){
      ...
    }而Vector内部已经进行了同步,可以猜想,它的clear方法可能是这样写的public synchronized void clear(){
      ...
    }