本文参考Java 集合系列10之 HashMap详细介绍(源码解析)和使用示例 及 JDK1.8集合源码阅读 一、HashMap介绍 1.1 前言 Java8的HashMap对之前做了较大的优化,其中最重要的一个优化就是桶中的元素不再唯一按照链表组合,也可以使用红黑树进行存储,总之,目标只有一个,那 ...
分类:
其他好文 时间:
2021-03-08 13:09:20
阅读次数:
0
一、组合模式在 JDK 集合的源码分析 1、Java 的集合类 HashMap 就使用了组合模式 2、代码分析 + Debug 源码 1 public class Composite { 2 3 public static void main(String[] args) { 4 5 Map<Int ...
分类:
其他好文 时间:
2021-01-27 14:00:00
阅读次数:
0
学习新内容 1 SpringBoot继续深入学习 2 SpringCloud学习 3 Netty学习 4 RabbitMQ学习 5 Redis继续深入学习 6 Docker了解基本使用 7 Linux熟记命令,能够部署服务 8 Zookeeper了解部分基础原理就好 9 集合源码更加深入学习 10 ...
分类:
其他好文 时间:
2020-04-04 09:46:59
阅读次数:
76
[toc] 小白学Java:奇怪的RandomAccess 我们之前在分析那三个集合源码的时候,曾经说到:ArrayList和Vector继承了 接口,但是LinkedList并没有,我们还知道继承了这个接口,就意味着其中元素支持 快速随机访问(fast random access) 。 Rando ...
分类:
数据库 时间:
2020-01-20 16:20:57
阅读次数:
101
[toc] Vector源码学习 前文传送门: "Java小白集合源码的学习系列:LinkedList" "Java小白集合源码的学习系列:ArrayList" Vector是JDK1.0中的集合,是集合中的老大哥,其中大部分的方法都被 synchronized 关键字所修饰,与ArrayList和 ...
分类:
编程语言 时间:
2020-01-18 00:59:00
阅读次数:
80
目录 ArrayList源码学习 ArrayList的继承体系 ArrayList核心源码 ArrayList扩容机制 最后的总结 ArrayList源码学习 本文基于JDK1.8版本,对集合中的巨头ArrayList做一定的源码学习,将会参考大量资料,在文章后面都将会给出参考文章链接,本文用以巩固 ...
分类:
编程语言 时间:
2020-01-16 10:27:44
阅读次数:
83
[toc] ArrayList源码学习 本文基于JDK1.8版本,对集合中的巨头 ArrayList 做一定的源码学习,将会参考大量资料,在文章后面都将会给出参考文章链接,本文用以巩固学习知识。 ArrayList的继承体系 ArrayList 继承了 AbstracList 这个抽象类,还实现了 ...
分类:
编程语言 时间:
2020-01-15 21:15:47
阅读次数:
82
集合(或者叫容器)是Java的核心知识点,它有着很深的深度。我们这里不会设计多深,仅仅作为了解入门,深入了解请移步各种集合源码文章。好的,下面正是开始介绍... Java集合为何而生 我们知道,Java是一门面向对象编程语言,这也就意味着程序中存在着大量的对象。这个时候问题就来了,我们如何很好的存放 ...
分类:
编程语言 时间:
2020-01-04 10:37:06
阅读次数:
79
1. 简介 HashMap是一个哈希表,线程不安全, 唯一, 可重复,允许 和`value`为null。遍历时是无序的。 底层结构是基于链表散列,也就是数组+链表。数组也被称为哈希桶,桶里面就装着链表,链表中的每个节点,就是哈希表中的每个元素。 在JDK8中,当链表长度达到8的时候,就会转为红黑树。 ...
分类:
编程语言 时间:
2019-11-22 23:47:18
阅读次数:
73
一、前言 前面我们已经分析了HashMap的源码,已经知道了HashMap可以用在哪种场合,如果这样一种情形,我们需要按照元素插入的顺序来访问元素,此时,LinkedHashMap就派上用场了,它保存着元素插入的顺序,并且可以按照我们插入的顺序进行访问。 二、LinkedHashMap用法 impo ...
分类:
其他好文 时间:
2019-11-02 20:17:39
阅读次数:
77