Java常见面试题:Arraylist与Vector的区别是什么?

看一个经常出现的JAVA面试题:Arraylist与Vector的区别是什么?

首先我们给出标准答案:
1、Vector是线程安全的,ArrayList不是线程安全的。
2、ArrayList在底层数组不够用时在原来的基础上扩展0.5倍,Vector是扩展1倍。

和ArrayList和Vector一样,同样的类似关系的类还有HashMap和HashTable,StringBuilder和StringBuffer,后者是前者线程安全版本的实现。

在单线程环境中,线程安全的这些版本的效率都比不上线程不安全的版本,主要原因是大部分函数都加了关键词:synchronized

导致存在加锁和释放锁的过程,消耗较多时间。

参考文献:

https://blog.csdn.net/qq_33589510/article/details/77387124

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章