JDK 1.8 源码解析
在风中的意志
这个作者很懒,什么都没留下…
展开
-
JDK1.8 源码 java.lang.Object类
前言 之前一段时间. 曾经阅读了部分JDK 1.8 源码. 首先阅读的是java.lang.Object类. 详细内容 主要方法. 以上的几个方法可以分成几类: native 关键字方法. 非native关键字方法. 所谓native关键字方法指的是调用的是计算机本地的方法. 比如Linux内核, Windows内核. 其对于方法的实现是完全不同的, 这也是Java为什么可以跨平台运行的原因.(根据本地内核, 调整项目内的底层接口方法.) 感兴趣的同学可以自己编译下JDK源码进行调试运行. 按照职原创 2020-07-10 00:20:10 · 344 阅读 · 0 评论 -
JDK1.8 源码 java.util.TreeMap
前言 本章, 我们主要介绍java.util.TreeMap. 根据上述图片, 其继承关系为TreeMap -> NavigableMap -> SortedMap -> Map. 总览 同样. 我们从成员变量和基本方法进行解读. 成员变量 private final Comparator<? super K> comparator; private transient Entry<K,V> root; private transient in原创 2020-07-31 00:58:47 · 450 阅读 · 1 评论 -
JDK1.8 源码 java.util.LinkedHashMap
前言 在前面的章节内我们仔细阅读了java.util.HashMap的源码. 在后面的2章内, 我们将看下JDK1.8内其余的2种数据类型的源码, 即LinkedHashMap与TreeMap. 在看LinkedhashMap之前, 我们先回顾下HashMap的几个基本知识. 基本数据节点Node<K,V> static class Node<K,V> implements Map.Entry<K,V> { final int hash;原创 2020-07-30 17:19:08 · 320 阅读 · 0 评论 -
JDK1.8 源码 java.lang.Integer类
前言 在上一章. 我们读了下java.lang.Object类. 在本章内, 我们读一下java.lang.Integer类. 众所周知, JDK有8种基本数据类型. 分别为 byte short int long float double. 还有2类非数字类, 分别为char和boolean. 也就是说, 读了其中一种数值数据类型, 即读过其他5种数据类型. 所以, 我们今天读取Integer数据类型是绝对有意义的. 正文 (成员 & 方法) 概览 与Object类相似. 在细读源码之前,原创 2020-07-14 16:32:48 · 430 阅读 · 0 评论 -
JDK1.8 源码 java.lang.String
前言 上一章节, 我们读了java.lang.Integer类. 本章我们读下java.lang.String类. 正文 总览 主要成员变量 // 存储数据类型 private final char value[]; // hash值 private int hash; // Default to 0 // 序列化值 private static final long serialVersionUID = -6849794470754667710L; // 流对象? private static f原创 2020-07-16 01:27:48 · 328 阅读 · 0 评论 -
JDK1.8 源码 String当真不可变么? StringBuilder和StringBuffer的区别
前言 在前面的章节内, 我们自己研究了java.lang.String类的源码. 本章主要解决与String相关的几个问题: String 当真不可变么? StringBuilder和StringBuffer的区别? 常量池 +运算符的重载及其含义 String当真不可变么? 我们回顾下String的源码. public final class String implements java.io.Serializable, Comparable<String>, CharSeque原创 2020-07-30 01:13:07 · 450 阅读 · 0 评论 -
JDK1.8 源码 java.util.ArrayList
前言 本章, 我们来看下集合数据类型java.lang.ArrayList. 集合类图解析 从该类图中可以看到. 集合类基础接口为Collection. 随后衍生出List/Set/Map. 这3类接口. List线 Collection <-- AbstractCollection <-- AbstractList/AbstractSet AstractList <-- ArrayList / LinkedList / Vector/ Stack Map线 Collecti原创 2020-07-17 00:55:57 · 281 阅读 · 0 评论 -
JDK1.8 源码 java.util.LinkedList
前言 今天我们来看下java.util.LinkedMap. 从上图可以看出. LinkedList和ArrayList同属List <-AbstractList流程下的不同实现. 此外, 因为链表的关系, LinkedList主要有2层继承关系. Collection <-- List <-- AbstractList <-- AbstractSequentialList. 此为第一段继承关系. Collection <-- Queue <- Deque <-原创 2020-07-17 12:11:55 · 275 阅读 · 0 评论 -
JDK1.8 源码 java.util.HashMap
本章, 我们来看下java.util.HashMap. 从图中可以看出, 其继承关系为:Collection <-- Map <-- AbstractMap <-- HashMap. 主要成员变量&方法 成员变量 private static final long serialVersionUID = 362498820763181265L; static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;原创 2020-07-17 21:50:33 · 370 阅读 · 0 评论