Java集合07 - SynchronizedList和Vector的区别

目录

1.SynchronizedList、Vector概述

2.SynchronizedList和Vector的区别

   2.1 构造机制不同

   2.2 扩容机制不同

   2.3 同步机制不同


1.SynchronizedList、Vector概述

       SynchronizedList:java.util.Collections中的一个静态内部类,可以通过List进行构造,用于返回线程安全的List集合

       Vector:java.util包中的类,一个和ArrayList相同底层实现的线程安全的List集合

2.SynchronizedList和Vector的区别

   2.1 构造机制不同

       SynchronizedList:可将所有的List的子类转成线程安全的类,例如可以把ArrayList和LinkedList直接转换成SynchronizedList,而无需改变底层数据结构

       Vector:底层结构固定,无法转换

   2.2 扩容机制不同

       SynchronizedList:如果用ArrayList构建SynchronizedList的话,那么SynchronizedList为1.5倍扩容

       Vector:Vector缺省情况下2倍扩容

   2.3 同步机制不同

       SynchronizedList:使用同步代码块实现同步,锁定的对象为mutex(构造函数可以传入一个Object,如果在调用的时候显示的传入一个对象,那么锁定的就是用户传入的对象,反之锁定this对象)

       Vector:使用同步方法实现同步,锁定this对象

猜你喜欢

转载自blog.csdn.net/qq_36756682/article/details/111385951