
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 · 257 阅读 · 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 · 343 阅读 · 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 · 204 阅读 · 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 · 308 阅读 · 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 · 224 阅读 · 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 · 373 阅读 · 0 评论 -
JDK1.8 源码 java.util.ArrayList
前言本章, 我们来看下集合数据类型java.lang.ArrayList.集合类图解析从该类图中可以看到.集合类基础接口为Collection.随后衍生出List/Set/Map. 这3类接口.List线Collection <-- AbstractCollection <-- AbstractList/AbstractSetAstractList <-- ArrayList / LinkedList / Vector/ StackMap线Collecti原创 2020-07-17 00:55:57 · 211 阅读 · 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 · 201 阅读 · 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 · 277 阅读 · 0 评论