jdk源码解析
wangqisen
这个作者很懒,什么都没留下…
展开
-
【jdk源码解析一】java.util.Observer与java.util.Observable
观察者模式大家应该十分熟悉,贴一张别人的图如下:上图十分清晰的展示了观察者模式是什么样的。在java的util包里,实际上有内置的对观察者模式的实现,java.uti.Observable类就是这里的主题,而Observer接口对应的就是Observer观察者接口。但是,实际上,虽然java对Observable的实现不是使用接口来实现,因此,实际上并不是很符合设计模式的多用组合,原创 2014-01-04 16:11:30 · 1108 阅读 · 0 评论 -
【jdk源码解析二】java.uti.HashMap源码解析
HashMap是我们常用的容器类之一,阅读了HashMap类的源码之后,来分析一下其源码。1.HashMap的类组织结构HashMap继承自AbstractMap抽象类,AbstractMap抽象类则是对Map接口的简单实现,AbstractMap实际上已经实现了大部分Map接口的方法,并提供了两个Entry内部类SimpleEntry以及SimpleImmutableEntry,后者相对原创 2014-01-11 17:08:08 · 713 阅读 · 0 评论 -
关于HashMap的拷贝问题
今天在看hashtable源码时看到clone()函数,官方文档说hashtable实现的是浅拷贝,但是,粗看之下,其的确对每一个Entry都调用了clone函数,怎么会是浅拷贝呢?如下:public synchronized Object clone() { try { Hashtable t = (Hashtable) super.clone(); t.table原创 2014-01-13 10:50:15 · 1541 阅读 · 0 评论 -
【jdk源码解析三】java.util.Hashtable
HashMap是Hashtable的非线程安全版。非常明显由源码可以看出,Hashtable与HashMap并不出于同一个人之手,代码风格有很大差别。首先,Hashtable继承自Dictionary接口而不是Map接口,为什么呢?Dictionary接口其实与Map接口差不多,但是已经被废弃,被Map接口所取代。与HashMap相同,Hashtable也实现了java.lang.Clonea原创 2014-01-13 15:32:18 · 1048 阅读 · 1 评论 -
【jdk源码解析四】java.uti.HashSet源码解析
HashSet与ArrayList的最主要区别在于,在HashSet中的元素不会出现重复的,因此m原创 2014-05-04 15:56:51 · 553 阅读 · 0 评论