
JDK源码解析
文章平均质量分 64
基于JDK源码对底层的API实现进行解析
laiwenqiang
世间最痛苦的事,莫过于泯然于众人,默默无闻。
展开
-
HashMap源码解析(一)
引言由于HashMap相对来说复杂一些,所以从类的注释开始。基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 /** * Hash table based implementation of th原创 2017-02-09 15:53:44 · 422 阅读 · 0 评论 -
ArrayList源码解析(上)
成员变量 elementData为实际存储数据的数组 size为ArrayList的实际大小,和elementData的长度有所区别 private static final long serialVersionUID = 8683452581122892189L;//默认的容量 private static final int DEFAULT_CAPACITY = 10;private stati原创 2017-02-07 18:59:50 · 399 阅读 · 0 评论 -
ArrayList源码解析(中)
判断元素位置这些函数都相对简单。因为存储的元素可能为null,所以判断的时候多了一次。public int size() { return size; }public boolean isEmpty() { return size == 0; }public boolean contains(Object o) { return indexOf(o) >= 0; }publi原创 2017-02-08 12:32:20 · 832 阅读 · 0 评论 -
ArrayList源码解析(下)
序列化操作,writeObject和readObjectprivate void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException{ // Write out element count, and any hidden stuff int expectedModCount = modCou原创 2017-02-08 17:54:34 · 359 阅读 · 0 评论 -
ArrayList的equals()方法解析
public boolean equals(Object o) { if (o == this) return true; if (!(o instanceof List)) return false; ListIterator e1 = listIterator(); ListIterator e2 =原创 2016-12-22 13:24:56 · 4302 阅读 · 1 评论 -
ThrealLocal详解
ThrealLocal用于提供线程内部的局部变量, 这种变量在多线程环境下访问能保证各个线程里的变量相对独立于其他线程内的变量, 也就是数据隔离。 简单例子先看一个简单示的ThreadLocal示例,创建五个线程,每个线程都会, 1. 获取当前日期秒数 2. 存入一个变量中 3. 取出变量打印final ThreadLocal<Long> secs = new ThreadLoca原创 2017-01-13 17:10:31 · 1452 阅读 · 0 评论