![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JDK源码分析
文章平均质量分 61
fannk
这个作者很懒,什么都没留下…
展开
-
HashMap的源码分析
存储结构:用数组来存桶的第一个节点。每个桶都是一个链表。里面存 hashcode & table.length 相同的那些Entry [code="java"] transient Entry[] table; [/code] 构造函数: loadFactor指的是重新初始化的一个伐值。比如说0.75.不理解设置这个伐值的好处是什么。实际初始化的table大小是大于initial...原创 2011-08-18 08:17:04 · 62 阅读 · 0 评论 -
ReentrantLock
昨天看了reentrantLock的源码码,分析一下: public class ReentrantLock implements Lock, java.io.Serializable { //调用AbstractQueuedSynchronizer的release方法 public void unlock() { sync.release(1); ...原创 2011-09-27 22:45:58 · 445 阅读 · 0 评论 -
ClassLoader的 一些测试
昨天写了ClassLoader原理的东西,今天对ClassLaoder做了一下测试 package com.fnk.classloader; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.IOException; import com.fnk.Test...原创 2011-09-09 12:48:58 · 100 阅读 · 0 评论 -
ClassLoader原理
最近本来打算研究分布式的东西的,看了一位大侠写的分布式系统,其中要实现把class传到客户端,然后在客户端实例化的工作,就去研究了一下ClassLoader的原理。 准备工作:http://download.java.net/openjdk/jdk6/ 压缩包中含有 Windows, Linux, Solaris 平台 JRE 源代码、JVM 源代码,以及 JDK 中类库和工具的源代码。 ...原创 2011-09-08 20:33:46 · 60 阅读 · 0 评论 -
Unsafe 源码分析
这几天在分析ThreadPoolExecutor的时候看到了Unsafe类就研究了一下。 Unsafe的源代码可以见http://xiao-jiang51.iteye.com/blog/850413 的分析。 因为Unsafe定义了私有的构造函数,而且限制类用户定义的类来访问Unsafe对象。如下代码,如果是开发人员自定义的类去调用的话,就会返回SecurityException.这个类怎么...原创 2011-08-19 21:56:13 · 103 阅读 · 0 评论 -
TreeMap 源码分析
TreeMap是一种红黑树。红黑树的介绍可以查看http://wangyu.iteye.com/blog/190763 存储结构为; [code="java"] private transient Entry root = null; [/code] put方法:通过排序树查找的方法找到相应的位置,然后插入。再调用fixAfterInsertion()方法旋转,调整成红黑树。 [c...原创 2011-08-18 15:42:01 · 92 阅读 · 0 评论 -
Vector 源码分析
Vector类继承了类AbstractList实现了接口implements List, RandomAccess, Cloneable, java.io.Serializable 存储结构是: [code="java"] protected Object[] elementData; [/code] 添加和删除方法: [code="java"] public synch...原创 2011-08-18 12:04:41 · 70 阅读 · 0 评论 -
LinkedHashSet 源码分析
LinkedHashSet 通过继承hashSet();然后调用hashmap的构造函数,用LinkedHashMap来存储数据 [code="java"] HashSet(int initialCapacity, float loadFactor, boolean dummy) { map = new LinkedHashMap(initialCapacity, loa...原创 2011-08-18 11:43:21 · 68 阅读 · 0 评论 -
LinkedHashMap 源码分析
LinkedHashMap 继承了HashMap 实现了 Map接口 在LinkedHashMap中定义了新的Entry结构,它继承了 HashMap.Entry. 定义了两个成员变量Entry before, after;用于存储前面entry和后面entry的应用。实现双向链表的结构 [code="java"] private static class Entry extends...原创 2011-08-18 11:34:01 · 63 阅读 · 0 评论 -
Hashtable 源码分析
hashtable实现了Map接口. 存储结构:类似于hashmap [code="java"] private transient Entry[] table; [/code] 构造函数:类似于hashmap [code="java"] public Hashtable(int initialCapacity, float loadFactor) { if (initia...原创 2011-08-18 10:41:37 · 82 阅读 · 0 评论 -
HashSet源码分析
存储结构: 通过hashmap来存储的 [code="java"] private transient HashMap map; [/code] 构造方法: [code="java"] public HashSet(int initialCapacity, float loadFactor) { map = new HashMap(initialCapacity, load...原创 2011-08-18 08:36:54 · 47 阅读 · 0 评论 -
HashMap的遍历源码
遍历可以分为上面两种方法,hm.entrySet().iterator()和 hm.keySet().iterator(). entrySet会比keySet快很多。在查资料的时候看到说 hm.entrySet()的时候会拷贝出hashtable中的数据到一个新的Set中,其实不是。 [code="java"] public class IterHashMap { public sta...原创 2011-08-14 16:49:32 · 190 阅读 · 0 评论