首先,推荐大家使用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** 和 **...
- **Vector**:类似ArrayList,但线程安全。 - **LinkedList**:基于双向循环链表实现。 #### 2. Set - **HashSet**:基于HashMap实现,保证元素唯一性。 - **LinkedHashSet**:结合了HashSet和LinkedList的特性,...
- **ArrayList和Vector**都是基于数组实现,支持随机访问,但插入和删除效率低。 - **LinkedList**使用链表结构,插入和删除速度快,但随机访问效率低。 8. **EJB(Enterprise JavaBeans)** - EJB是Java企业级...
### C++ STL 面试题解析 #### 一、C++ STL的核心价值 C++标准模板库(Standard Template Library,简称STL)之所以备受推崇,不仅因为它提供了诸如`vector`、`string`、`list`等高效且易用的容器,更在于其封装了...
### Java工程师面试题知识点解析 #### 一、Hibernate中离线查询去除重复项 - **问题**: Hibernate中如何在离线查询中去除重复项? - **解决方案**: 在Hibernate的Criteria API中,可以通过调用`...
【描述】: 这个压缩包“开发笔试题 面试题 - 副本.zip”包含了一组开发人员可能会遇到的笔试和面试题目,旨在帮助求职者或者正在提升技能的程序员准备应对各种技术挑战。这些题目涵盖了多种编程语言、数据结构、算法...
面试题集通常会涵盖Java的基础知识,如数据类型、类、对象、接口、集合框架、多线程、异常处理等方面。以下是对给定内容的详细解释: 1. **访问修饰符的区别**: - `public`:所有类都可以访问。 - `private`:...
- ArrayList和Vector基于动态数组,支持随机访问但插入和删除较慢,Vector是线程安全的。 - LinkedList基于链表,插入和删除速度快但随机访问慢。 8. **多线程同步示例:** - 示例中的代码展示了如何创建两个...
- **List**:有序集合,如`ArrayList`和`Vector`,适合按数值索引访问元素。 - **Map**:存储键值对,如`HashMap`和`TreeMap`,键必须唯一,便于查找和管理数据。 #### 6. JVM加载Class文件机制 JVM通过类加载器...
### 华为Java面试知识点详解 #### 一、面向对象的特征 面向对象编程的核心特征主要包括以下几个方面: ...以上就是从给定的华为Java面试题中提炼出来的关键知识点及其详细解释。希望对你有所帮助!
ArrayList和Vector的区别是什么?插入数据时,ArrayList、LinkedList、Vector谁速度较快?阐述ArrayList、Vector、LinkedList的存储性能和特性?多线程场景下如何使用ArrayList?为什么ArrayList的elementData加上...
### 常见集合知识和面试题 #### Collection与Collections的区别 - **Collection**:这是Java集合框架中定义的一种根接口,所有其他集合类都直接或间接地继承自该接口。Collection代表了一组对象(即元素),这些...
Java 面试题是考察开发者对编程语言深入理解的重要环节,以下是对这些知识点的详细说明: 1. **面向对象的特征**: - **抽象**:抽象是将复杂问题简化,只关注与当前问题相关的属性和行为,忽略不重要的细节。 - ...
在Java面试中,掌握基础概念和技术细节至关重要。...以上内容涵盖了Java面试中常见的基础概念和高级特性,对于理解和解答Java相关的面试题至关重要。深入理解这些知识点有助于在面试中表现出扎实的Java编程功底。
6. **ArrayList、Vector、LinkedList**:这三种都是集合类,ArrayList和Vector基于数组,提供随机访问,插入和删除较慢;LinkedList基于链表,插入和删除速度快,但访问慢。 7. **Collection与Collections**:`...
在Java编程领域,面试中常见的问题涵盖了语言特性和设计原则,以及...以上就是Java面试中常见的知识点,涵盖了面向对象、异常处理、集合框架、Web开发等多个方面,对于理解和解答Java程序员和工程师面试题至关重要。
Vector、ArrayList 和 LinkedList 的区别 - **Vector**: 继承自 AbstractList 并实现了 List 接口,与 ArrayList 相似,但是它是线程安全的(内部实现采用了 synchronized 方法)。Vector 在进行迭代时,如果其他...
### Java常见面试题集知识点详解 #### 一、作用域(public, private, protected, 不写)的区别 在Java中,类成员(如方法、变量)的可见性可以通过四种不同的访问修饰符来控制:`public`、`private`、`protected` 和...