`

每天一道面试题-ArrayList和Vector的区别

 
阅读更多

首先,推荐大家使用ArrayList,了解这个差别,更多是为了应对面试。

两者的最大差异就是线程安全

ArrayList:线程不安全,但性能高

Vector:线程安全,但性能较低

我们如何得到一个类是线程安全或不安全的结论的?

从源码的角度来说,你大可以打开ArrayList和Vector的源码一对比,即可发现

ArrayList的部分源码:

public boolean add(E e) {ensureCapacityInternal(size + 1); // Increments modCount!!elementData[size++] = e;return true;}

Vector的部分源码:

public synchronized boolean add(E e) {modCount++;ensureCapacityHelper(elementCount + 1);elementData[elementCount++] = e;return true;}

大家看出差异了吗?

--------------------- 本文来自 互联网十年老兵- 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/happy_coding_life/article/details/80381219?utm_source=copy 

分享到:
评论

相关推荐

    最新各大公司企业真实面试题-新星公司面试题笔试题

    Java 集合类 ArrayList、Vector、HashMap 和 HashTable 的区别 - **ArrayList** 和 **Vector** 均是基于动态数组实现的列表,不同之处在于 Vector 是线程安全的,而 ArrayList 不是。 - **HashMap** 和 **...

    2024年java面试题-java集合相关面试题

    - **Vector**:类似ArrayList,但线程安全。 - **LinkedList**:基于双向循环链表实现。 #### 2. Set - **HashSet**:基于HashMap实现,保证元素唯一性。 - **LinkedHashSet**:结合了HashSet和LinkedList的特性,...

    java面试题-----

    - **ArrayList和Vector**都是基于数组实现,支持随机访问,但插入和删除效率低。 - **LinkedList**使用链表结构,插入和删除速度快,但随机访问效率低。 8. **EJB(Enterprise JavaBeans)** - EJB是Java企业级...

    面试题--c++

    ### C++ STL 面试题解析 #### 一、C++ STL的核心价值 C++标准模板库(Standard Template Library,简称STL)之所以备受推崇,不仅因为它提供了诸如`vector`、`string`、`list`等高效且易用的容器,更在于其封装了...

    java工程师面试题大全-100%公司笔试题你都能碰到几个

    ### Java工程师面试题知识点解析 #### 一、Hibernate中离线查询去除重复项 - **问题**: Hibernate中如何在离线查询中去除重复项? - **解决方案**: 在Hibernate的Criteria API中,可以通过调用`...

    开发笔试题 面试题 - 副本.zip

    【描述】: 这个压缩包“开发笔试题 面试题 - 副本.zip”包含了一组开发人员可能会遇到的笔试和面试题目,旨在帮助求职者或者正在提升技能的程序员准备应对各种技术挑战。这些题目涵盖了多种编程语言、数据结构、算法...

    Java常见面试题集--面试题全面综合(一)

    面试题集通常会涵盖Java的基础知识,如数据类型、类、对象、接口、集合框架、多线程、异常处理等方面。以下是对给定内容的详细解释: 1. **访问修饰符的区别**: - `public`:所有类都可以访问。 - `private`:...

    java程序员面试题3---java华为面试题.

    - ArrayList和Vector基于动态数组,支持随机访问但插入和删除较慢,Vector是线程安全的。 - LinkedList基于链表,插入和删除速度快但随机访问慢。 8. **多线程同步示例:** - 示例中的代码展示了如何创建两个...

    java私塾面试题----JAVA基础3

    - **List**:有序集合,如`ArrayList`和`Vector`,适合按数值索引访问元素。 - **Map**:存储键值对,如`HashMap`和`TreeMap`,键必须唯一,便于查找和管理数据。 #### 6. JVM加载Class文件机制 JVM通过类加载器...

    huawei面试题--java篇

    ### 华为Java面试知识点详解 #### 一、面向对象的特征 面向对象编程的核心特征主要包括以下几个方面: ...以上就是从给定的华为Java面试题中提炼出来的关键知识点及其详细解释。希望对你有所帮助!

    02-Java集合容器面试题-重点.docx

    ArrayList和Vector的区别是什么?插入数据时,ArrayList、LinkedList、Vector谁速度较快?阐述ArrayList、Vector、LinkedList的存储性能和特性?多线程场景下如何使用ArrayList?为什么ArrayList的elementData加上...

    常见集合知识和面试题

    ### 常见集合知识和面试题 #### Collection与Collections的区别 - **Collection**:这是Java集合框架中定义的一种根接口,所有其他集合类都直接或间接地继承自该接口。Collection代表了一组对象(即元素),这些...

    java面试题-之葵花宝典.doc

    Java 面试题是考察开发者对编程语言深入理解的重要环节,以下是对这些知识点的详细说明: 1. **面向对象的特征**: - **抽象**:抽象是将复杂问题简化,只关注与当前问题相关的属性和行为,忽略不重要的细节。 - ...

    JAVA面试题-中软就业班提供

    在Java面试中,掌握基础概念和技术细节至关重要。...以上内容涵盖了Java面试中常见的基础概念和高级特性,对于理解和解答Java相关的面试题至关重要。深入理解这些知识点有助于在面试中表现出扎实的Java编程功底。

    java面试题-后端程序员必备-框架-大厂面试准备.docx

    6. **ArrayList、Vector、LinkedList**:这三种都是集合类,ArrayList和Vector基于数组,提供随机访问,插入和删除较慢;LinkedList基于链表,插入和删除速度快,但访问慢。 7. **Collection与Collections**:`...

    Java面试题-JAVA程序员JAVA工程师面试必看

    在Java编程领域,面试中常见的问题涵盖了语言特性和设计原则,以及...以上就是Java面试中常见的知识点,涵盖了面向对象、异常处理、集合框架、Web开发等多个方面,对于理解和解答Java程序员和工程师面试题至关重要。

    面试题-java大量题目集合

    Vector、ArrayList 和 LinkedList 的区别 - **Vector**: 继承自 AbstractList 并实现了 List 接口,与 ArrayList 相似,但是它是线程安全的(内部实现采用了 synchronized 方法)。Vector 在进行迭代时,如果其他...

    Java常见面试题集--面试题全面综合.pdf

    ### Java常见面试题集知识点详解 #### 一、作用域(public, private, protected, 不写)的区别 在Java中,类成员(如方法、变量)的可见性可以通过四种不同的访问修饰符来控制:`public`、`private`、`protected` 和...

Global site tag (gtag.js) - Google Analytics