JDK源码解析
文章平均质量分 96
看JDK源码是提升内功的最好方式之一
程序员可乐、
一个有故事的程序员,持续更新技术教程
展开
-
JDK1.8源码(五)——java.util.ArrayList 类
关于 JDK 的集合类的整体介绍可以看这张图,本篇博客我们不系统的介绍整个集合的构造,重点是介绍 ArrayList 类是如何实现的。1、ArrayList 定义 ArrayList 是一个用数组实现的集合,支持随机访问,元素有序且可以重复。public class ArrayList<E> extends AbstractList<E>...原创 2018-03-28 09:13:00 · 646 阅读 · 6 评论 -
JDK1.8源码(三)——java.lang.String 类
String 类也是java.lang 包下的一个类,算是日常编码中最常用的一个类了,那么本篇博客就来详细的介绍 String 类。1、String 类的定义public final class String implements java.io.Serializable, Comparable<String>, CharSequence {}...原创 2018-03-21 10:52:00 · 207 阅读 · 1 评论 -
JDK1.8源码(八)——java.util.HashSet 类
在上一篇博客,我们介绍了 Map 集合的一种典型实现 HashMap,在 JDK1.8 中,HashMap 是由 数组+链表+红黑树构成,相对于早期版本的 JDK HashMap 实现,新增了红黑树作为底层数据结构,在数据量较大且哈希碰撞较多时,能够极大的增加检索的效率。了解 HashMap 的具体实现后,我们再来介绍由 HashMap 作为底层数据结构...原创 2018-10-24 20:07:00 · 297 阅读 · 0 评论 -
JDK1.8源码(四)——java.util.Arrays 类
java.util.Arrays 类是 JDK 提供的一个工具类,用来处理数组的各种方法,而且每个方法基本上都是静态方法,能直接通过类名Arrays调用。1、asList public static <T> List<T> asList(T... a) { return new ArrayList<>(a);...原创 2018-03-26 07:21:00 · 708 阅读 · 0 评论 -
JDK1.8源码(一)——java.lang.Object类
本系列博客将对JDK1.8版本的相关类从源码层次进行介绍,JDK8的下载地址。 首先介绍JDK中所有类的基类——java.lang.Object。 Object 类属于 java.lang 包,此包下的所有类在使用时无需手动导入,系统会在程序编译期间自动导入。Object 类是所有类的基类,当一个类没有直接继承某个类时,默认继承Object类,也就是说任何类都直接或间接继...原创 2018-03-15 09:42:00 · 252 阅读 · 4 评论 -
JDK1.8源码(九)——java.util.LinkedHashMap 类
前面我们介绍了 Map 集合的一种典型实现HashMap,关于 HashMap 的特性,我们再来复习一遍: ①、基于JDK1.8的HashMap是由数组+链表+红黑树组成,相对于早期版本的 JDK HashMap 实现,新增了红黑树作为底层数据结构,在数据量较大且哈希碰撞较多时,能够极大的增加检索的效率。 ②、允许 key ...原创 2018-11-21 08:51:00 · 987 阅读 · 0 评论 -
JDK1.8源码(二)——java.lang.Integer 类
上一篇博客我们介绍了 java.lang 包下的 Object 类,那么本篇博客接着介绍该包下的另一个类 Integer。在前面 浅谈 Integer 类博客中我们主要介绍了 Integer 类 和 int 基本数据类型的关系,本篇博客是从源码层次详细介绍 Integer 的实现。 1、Integer 的声明 public f...原创 2018-03-19 07:45:00 · 218 阅读 · 1 评论 -
JDK1.8源码(十)——java.util.LinkedHashSet类
同 HashSet 与 HashMap 的关系一样,本篇博客所介绍的 LinkedHashSet 和 LinkedHashMap 也是一致的。在 JDK 集合框架中,类似 Set 集合通常都是由对应的 Map 类集合来实现的(TreeSet 和 TreeMap 同理),这里很重要的一个理论就是:Set 类集合是不允许重复的,而 Map 类集合的 key 也是不...原创 2018-11-24 09:23:00 · 180 阅读 · 0 评论 -
JDK1.8源码(六)——java.util.LinkedList 类
上一篇博客我们介绍了List集合的一种典型实现 ArrayList,我们知道 ArrayList 是由数组构成的,本篇博客我们介绍 List 集合的另一种典型实现 LinkedList,这是一个由链表构成的数组,关于链表的介绍,在这篇博客中我们也详细介绍过,本篇博客我们将介绍 LinkedList 是如何实现的。 1、LinkedList 定义&#...原创 2018-04-02 09:44:00 · 179 阅读 · 0 评论 -
JDK1.8源码(七)——java.util.HashMap 类
本篇博客我们来介绍在 JDK1.8 中 HashMap 的源码实现,这也是最常用的一个集合。但是在介绍 HashMap 之前,我们先介绍什么是 Hash表。 1、哈希表 Hash表也称为散列表,也有直接译作哈希表,Hash表是一种根据关键字值(key - value)而直接进行访问的数据结构。也就是说它通过把关键码值映射到表中的一个位置...原创 2018-04-12 22:49:00 · 267 阅读 · 2 评论 -
JDK1.8源码(十一)——java.util.TreeMap类
JDK1.8源码(十一)——java.util.TreeMap类 在前面几篇博客分别介绍了这样几种集合,基于数组实现的ArrayList 类,基于链表实现的LinkedList 类,基于散列表实现的HashMap 类,本篇博客我们来介绍另一种数据类型,基于树实现的TreeSet类。1、TreeMap 定义 听名字就知道,TreeMap...原创 2019-05-14 22:42:00 · 424 阅读 · 0 评论