Java源代码分析
JDK源代码阅读并详细分析
huzhigenlaohu
这个作者很懒,什么都没留下…
展开
-
Java源代码分析之Vector数组
Vector源码分析 每个Java程序员应该的特性可变长数组(grow or shrink) 能够使用索引获取值(accessed using an integer index) 多线程环境下线程安全 类图 package java.util;import java.util.function.Consumer; import java.util.function.Predicate; import原创 2016-06-27 16:16:38 · 2068 阅读 · 0 评论 -
Java动态修改Enum实例
众所周知,enum类型实例数量是固定的,甚至还被用来设计单例。但有时候仍然存在需要动态增加Enum实例的场景,这也并非一定是设计失败,也可能是增加灵活性的实际需求,比如一些web框架,再比如HanLP 中的动态用户自定义词性。然而最大的障碍是switch语句生成的虚构类,本文参考Java Specialists第161期,提供一份可用的解决方案与实例代码。 一段有问题的代码原创 2016-05-28 10:49:14 · 14717 阅读 · 0 评论 -
深入Java 1.5枚举类型的内部实现原理
Java是一种面向对象的高级编程语言。它的出众之处就在于它的简洁。一个程序员所要做的就是创建类(Create Class)以及定义接口(Define Interface),如此而已。当然,这种简洁和优美是有代价的,比如失去了Enum这种广泛使用的数据类型就是一个不小的损失。在Java 1.5以前,程序员们不得不通过一些变通的方法来间接的解决这一问题。比如说,被普遍使用的整数枚举替代法和类型安全类替原创 2016-05-28 11:42:20 · 2954 阅读 · 0 评论 -
Java源代码分析之StringBuffer
StringBuffer源码分析每个Java程序员基本都了解的 长度可变字符操作工具类 在多线程环境下线程安全 额,好像想不到其他的呢? 所以需要去阅读并分析源码 StringBuffer类图,如下 可以看到 StringBuffer继承自AbstractStringBuilder(实现了Appendable接口),实现了Serializable和CharSequence接口。 源码分析(加入自己所原创 2016-06-14 20:49:11 · 1719 阅读 · 0 评论 -
Java源代码分析之Stack栈
Stack 源代码分析 每个Java程序员应该了解的特性LIFO后进先出的特性 在多线程环境下线程安全 类图 可以看到Stack直接继承Vector类层次图可以看到,jdk还啰嗦的为大家添加了一个实现类,StringStack,其实根本没必要的吧,大体看了下,一共只有5个方法,加一个序列号字段,内部实现全部是复用父类的方法,完全可以自己实现的,有点多余啦,另外在继承Vector类中也就Stack了,原创 2016-06-16 10:44:57 · 1001 阅读 · 0 评论