源码分析 LinkedHashMap

HashMap 大家都清楚,底层是 数组 + (链表 / 红黑树),元素是无序的,而 LinkedHashMap 则比 HashMap 多了这一个功能,并且,LinkedHashMap 的有序可以按两种顺序排列,一种是按照插入的顺序,一种是按照访问的顺序(初始化LinkedHashMap对象时设置a

源码分析 HashMap

作为工作中最重要、最常用的容器之一,当然还是要自己动手写一篇 HashMap 的源码解析来加深对其的印象咯,而且它的设计与实现 也有很多值得学习的地方。源码赏析JDK1.8 的HashMap 底层使用的是 动态数组,数组中元素存放的是 链表或红黑树。核心源码如下。public class HashM

源码分析 ConcurrentHashMap

HashMap 源码中主要了解其核心源码及实现逻辑。ConcurrentHashMap 就不再重复那些数据结构相关的内容咯,这里重点看一下它的并发安全实现。源码如下。public class ConcurrentHashMap<K,V> extends AbstractMap<K,

源码分析 ThreadLocal

先看Thread类的源码,再理解ThreadLocal相对容易一些。ThreadLocal类 提供了 get/set线程局部变量的实现,ThreadLocal成员变量与正常的成员变量不同,每个线程都可以通过 ThreadLocal成员变量 get/set自己的专属值。ThreadLocal实例 通常

源码解析 Thread

实现多线程从本质上都是由 Thread类 来完成的,其源码量很多,本次只看一些常见且重要的部分,源码和解析如下。public class Thread implements Runnable {/** 这里只看一些 常见的参数 *//** 线程名 */private volatile char na

源码解析 String

重点看一下equals()和hashcode()方法,然后看一下String类常用方法的实现。public final class String implements java.io.Serializable, Comparable<String>, CharSequence {