Java源代码分析之Stack栈
来源:互联网 发布:网络基础知识视频 编辑:程序博客网 时间:2024/06/05 16:16
Stack 源代码分析
每个Java程序员应该了解的特性
- LIFO后进先出的特性
- 在多线程环境下线程安全
类图
可以看到Stack直接继承Vector
类层次图可以看到,jdk还啰嗦的为大家添加了一个实现类,StringStack,其实根本没必要的吧,大体看了下,一共只有5个方法,加一个序列号字段,内部实现全部是复用父类的方法,完全可以自己实现的,有点多余啦,另外在继承Vector类中也就Stack了,其他都不常见
下一篇再详细分析Vector源码咯,这篇就不把他的扯出来了。
package java.util; //此包中所有常用类都需要去分析/** * 后进先出 , 内部实现均由父类 Vector 实现 * * 双向队列 Deque 提供了比较全的方法,比Stack强大,因此推荐使用 Deque * 比如: Deque<Integer> stack = new ArrayDeque<Integer>(); */public class Stack<E> extends Vector<E> { public Stack() { } /** * 看着没同步实际是同步了的,同步由父类Vector的方法addElement提供实现 * 此方法效果同addElement */ public E push(E item) { addElement(item); return item; } /** * 弹出栈顶元素 * 并返回弹出的元素 * 为空要抛出异常 */ public synchronized E pop() { E obj; int len = size(); obj = peek(); removeElementAt(len - 1); return obj; } /** * 获取栈顶元素 * 为空要抛出异常 */ public synchronized E peek() { int len = size(); if (len == 0) throw new EmptyStackException(); return elementAt(len - 1); } /** * 当且仅当栈为空的时候返回true */ public boolean empty() { return size() == 0; } /** * 返回指定元素离栈顶的距离,注意从1开始计数,如果刚好是栈顶元素,那么返回的值为1, * 如果不存在此元素,那么返回-1 */ public synchronized int search(Object o) { int i = lastIndexOf(o); if (i >= 0) { return size() - i; } return -1; } /** use serialVersionUID from JDK 1.0.2 for interoperability */ private static final long serialVersionUID = 1224463164541339165L;}
是不是感觉没啥分析的?我也觉得,真正值得去分析的是Vector类,下一步就是他了。
1 0
- Java源代码分析之Stack栈
- java Stack源代码实现
- Java之Stack --- 栈
- Java之--Stack栈
- Java集合之Stack 源码分析
- Java源代码分析之StringBuffer
- Java源代码分析之LinkedList
- Java源代码分析之StringBuffer
- 【源代码】java.util.Stack & Queue
- Java 数据结构之 Stack(栈)
- 《Java源码分析》:Stack
- 《Java源码分析》:Stack
- Stack类源代码分析(基于JDK1.8)
- Java源代码分析之Vector数组
- Java集合之Stack 源码分析 泽…
- 共同学习Java源代码-数据结构-Stack
- Java数据结构与算法之stack栈
- java集合框架之栈Stack
- 关于JAVA中事件分发和监听机制实现的代码实例-绝对原创实用
- IOS 国际化语言包配置(三)
- linux下查看内存使用情况的方法总结(转)
- 235. Lowest Common Ancestor of a Binary Search Tree
- 对象适配器模式
- Java源代码分析之Stack栈
- [iOS architect]读《iOS遗留系统重构实践》
- Linux(5)Linux常用命令_rpm命令
- 模拟银行卡的存取款过程
- linux系统上的weblogic自启动
- ListView OnScrollListener详解
- Android漂亮的对话框项目sweet-alert-dialog
- gearman性能与应用架构设计
- 刷爆欧洲杯,海信带领国产电视走向海外