Stack
Stack
一、定义
1 | public class Stack<E> extends Vector<E> { |
Stack 继承自 Vector 类,因此拥有 Vector 的所有特性。
二、原理
Stack 除了增加几个栈特用的方法以外,其他的和 Vector 都一样,而增加的这几个方法,内部实际上也是调用的 Vector 的方法。
1 | public E push(E item) { |
和 Vector 的保持一致,Stack 添加的方法也加上了同步锁 synchronized,避免并发问题。
不过 push 方法并没有加上同步锁,这个倒是有点出乎意料,或许是因为它内部调用的方法 addElement 已经加锁的原因吧。