
Java
文章平均质量分 93
源码阅读
白夜21
Talk is cheap,show me the code.
展开
-
JVM 运行时数据区
一,运行时数据区域程序计数器 Java栈(虚拟机栈) 本地方法栈 堆 方法区二,程序计数器程序计数器是当前线程执行的字节码的行号指示器。程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器,字节码解释器的工作就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支,循环,跳转,异常处理,线程恢复等基础功能都需要依赖程序计数器来完成。每条线程都有一个独立的程序计数器。Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的原创 2021-06-23 10:50:48 · 105 阅读 · 0 评论 -
Hashtable,ConcurrentHashMap与Collections.synchronizedMap关键源码
一,Collections.synchronizedMap1,构造 public static <K,V> Map<K,V> synchronizedMap(Map<K,V> m) { return new SynchronizedMap<>(m); }2.为什么线程安全原创 2021-06-08 10:49:52 · 1408 阅读 · 2 评论 -
Java8 ArrayList,LinkedList,Vector关键源码阅读
一,ArrayList1,ArrayList底层数据结构ArrayList的底层数据结构是一个数组,Object[] elementData。以下是ArrayListde一些主要参数 // 默认数组长度 10 private static final int DEFAULT_CAPACITY = 10; // 空实例的数组 private static final Object[] EMPTY_ELEMENTDATA = {}; // 初始化默原创 2021-06-05 17:19:23 · 131 阅读 · 0 评论 -
Java8 HashMap关键源码阅读,以及Java7头插法与Java8尾插法理解。
一,HashMap的底层数据结构Java8 中HashMap的底层数据结构是数组+链表,当数组长度为64或者链表长度为8时,将会把链表转化为红黑树。1.HashMap的存取原理put方法 public V put(K key, V value) { return putVal(hash(key), key, value, false, true); }final V putVal(int hash, K key, V value, boolean原创 2021-06-02 12:10:57 · 1304 阅读 · 1 评论