我们在面试的时候往往会遇见这样一个问题,就是请简述Vector类和ArrayList等容器的区别。
做过一段时间JAVA编程的小伙伴们都知道Vector类现在已经很少用到,那么其必有其弊端
下面我就综合JAVA编程思想第四版对Vector类进行一个简单的讲解。
Vector类中的方法设计成为final,那么不能对其进行扩展,其中令人意想不到的是1、Stack类继承自Vector类。就是说stack是一个Vector,这从逻辑上应该是说不过去的。并且如果我们创建stack时,如果其方法为final的话,其未免有些严格了
第二:Vector中的最重要的两个方法:addElement()和elementAt()都是同步的,这将导致大量的开销,可能会抹煞final带来的性能提升。相对来说ArrayList的行为要合理得多。
本文探讨了Java中Vector类与ArrayList的主要区别。Vector方法被设计为final,无法扩展,并且Stack继承自Vector,这一点存在逻辑上的不合理。Vector使用同步方法,如addElement()和elementAt(),这可能导致性能开销。
6384

被折叠的 条评论
为什么被折叠?



