在JDK8中,`Vector` 是一个历史悠久且线程安全的动态数组实现。它与 `ArrayList` 类似,但拥有更强的同步性保障。当我们打开它的源码时,会发现许多有趣的细节。首先,`Vector` 的构造方法提供了多种初始化方式,比如默认容量为10和指定初始容量及增长因子。例如,当向 `Vector` 中添加元素超过当前容量时,默认会将容量扩大为原来的两倍(通过 `elementData` 数组管理)。此外,`Vector` 的核心方法如 `addElement()` 和 `removeElementAt()` 都被同步修饰符包裹,确保了多线程环境下的安全性。
值得注意的是,尽管 `Vector` 提供了线程安全的便利,但在现代开发中,我们更倾向于使用 `ArrayList`,因为后者性能更高且更适合单线程场景。如果你对集合框架感兴趣,不妨深入研究 `Vector` 的扩容机制以及迭代器的工作原理——你会发现,这些经典设计背后蕴含着智慧与优雅!📚💻
Java 集合框架 Vector