Java中Vector类的对象是静态大小的吗?
我在寻找这个问题的答案。 我从谷歌那里得到的东西- JAVAutil。Java中的向量类。Vector类实现了一个可扩展的对象数组。向量基本上属于遗留类,但现在它与集合完全兼容。它们与ArrayList非常相似,但Vector是同步的,并且有一些集合框架不包含的遗留方法
你可以在下面搜索框中键入要查询的问题!
我在寻找这个问题的答案。 我从谷歌那里得到的东西- JAVAutil。Java中的向量类。Vector类实现了一个可扩展的对象数组。向量基本上属于遗留类,但现在它与集合完全兼容。它们与ArrayList非常相似,但Vector是同步的,并且有一些集合框架不包含的遗留方法
# 1 楼答案
当Java管理自己的内存时,请记住,我们不能确切地知道列表/缓冲区/数组的状态
向量,比如ArrayList,有一个
initialCapacity
可以在构造函数中传入参数。从这一刻起,直到垃圾收集器运行,存储这个initialCapacity
所需的大小被分配给向量与经典数组不同,向量和列表是可增长的。下面是向向量添加元素时发生的情况的快速解释:
如果向量未满,则将元素添加到向量中
如果向量已满,则将向量的大小增加一倍
您可以更改向量在构造函数中的增长量(
capacityIncrement
)。默认值为2,因此容量增长非常快向量是同步的,但不应使用迭代器对其进行迭代:它们不是故障安全的(如果在迭代时修改了向量的结构,迭代器将不会更新)。这就是为什么使用锁和ArrayList通常比使用向量更安全(如果您知道如何正确使用锁的话)
您可以在这里获得更多详细信息:https://docs.oracle.com/javase/8/docs/api/java/util/Vector.html