欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
  • ArrayList源码分析--jdk1.8

    ArrayList概述 1. ArrayList是可以动态扩容和动态删除冗余容量的索引序列,基于数组实现的集合。 2. ArrayList支持随机访问、克隆、序列化,元素有序且可以重复。 3. ArrayList初始默认长度10,超出扩容1.5倍,使用Object[]存储各种数据类型。 ArrayL ...

    程序员文章站2023-11-09
  • JDK源码分析-HashMap

    一.HashMap的内部属性 1.1 成员变量 HashMap包含的KV键值对的数量,也就是我们通常调用Map.size()方法的返回值 HashMap的结构被修改的次数(包括KV映射数量和内部结构rehash次数),用于判断迭代器梳理中不一致的快速失败。 下一次扩容时的阈值,达到阈值便会触发扩容机 ...

    程序员文章站2023-10-29
  • Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析

    Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析,TemporalAccessor、Temporal、TemporalAdjuster、ChronoLocalDate和LocalDate的关系解析。 ...

    程序员文章站2023-10-29
  • HashMap源码分析--jdk1.8

    基于jdk1.8HashMap源码分析,学习底层数据结构、算法、设计理念、进制转换、代码艺术 ...

    程序员文章站2023-08-12
  • JDK源码分析(6)之 LinkedHashMap 相关

    `LinkedHashMap HashMap+LinkedList`,提供了顺序访问的功能;所以在看这篇博客之前最好先看一下我之前的两篇博客, "HashMap 相关" 和 "LinkedList 相关" ; 一、整体结构 1. 定义 从上述定义中也能看到 其实就是继承了 ,并加了双向链表记录顺序, ...

    程序员文章站2023-04-01
  • 源码分析--HashSet(JDK1.8)

    HashSet为无序不可重复集合。底层几乎全部借助HashMap实现,比较简单。本篇简要分析一下HashSet源码。 首先是成员变量: 1、真正保存数据的HashMap实例 2、map实例的值 常用方法: 1、add() 从这个HashSet的add()方法中,可以看出。HashSet的不可重复,主 ...

    程序员文章站2023-04-01
  • JDK源码分析(10)之 Hashtable 相关

    本文的目的并不是让你对 更加了解,然后灵活运用;因为 的一个历史遗留的类,目前并不建议使用,所以本文主要和 对比,感受同样功能的不同实现,知道什么是好的代码;所以在阅读本文之前最好先了解一下 ,可以参考 "HashMap 相关" ; 一、 类定义 可以看到它和 虽然都是哈希表,但是结构完全不一样,他 ...

    程序员文章站2023-04-01
  • 源码分析--ConcurrentHashMap与HashTable(JDK1.8)

    ConcurrentHashMap和Hashtable都是线程安全的K-V型容器。本篇从源码入手,简要说明它们两者的实现原理和区别。 与HashMap类似,ConcurrentHashMap底层也是以数组+链表+红黑树实现的,以Node节点封装K-V和hash。 val和next以volatile关 ...

    程序员文章站2023-03-31
  • JDK源码分析(7)之 Reference 框架概览

    对于 类大家可能会比较陌生,平时用的也比较少,对他的印象可能仅停在面试的时候查看引用相关的知识点;但在仔细查看源码后发现 还是非常实用的,平时我们使用的类都是强引用的,它的回收完全依赖于 GC;但是对于有些类我们想要自己控制的时候就比较麻烦,比如我想在内存还足够的时候就保留,不够的时候就回收,这时使 ...

    程序员文章站2023-02-15
  • LinkedList源码分析:JDK源码分析系列

    如果本文中有不正确的地方请指出由于没有留言可以在公众号添加我的好友共同讨论。 1.介绍 LinkedList 是线程不安全的,允许元素为null的双向链表。 2.继承结构 我们来看一下LinkedList的继承结构图: 代码实现: Cloneable实现克隆 Serializable序列化 List ...

    程序员文章站2023-02-02
  • JDK源码分析(9)之 WeakHashMap 相关

    平时我们使用最多的数据结构肯定是 HashMap,但是在使用的时候我们必须知道每个键值对的生命周期,并且手动清除它;但是如果我们不是很清楚它的生命周期,这时候就比较麻烦;通常有这样几种处理方式: 由一个线程定时处理,可以是 或者 ; 利用重写 ,实现 FIFOCache 或者 LRUCache;可以 ...

    程序员文章站2023-01-13
  • 源码分析--HashMap(JDK1.8)

    在JDK1.8中对HashMap的底层实现做了修改。本篇对HashMap源码从核心成员变量到常用方法进行分析。 HashMap数据结构如下: 先看成员变量: 1、底层存放数据的是Node[]数组,数组初始化大小为16。 2、Node[]数组最大容量 3、负载因子0.75。也就是如 ...

    程序员文章站2022-12-17
  • 【JDK源码分析】通过源码分析CyclicBarrier

    前言 CyclicBarrier它是什么?一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点。类似于朋友之间联系要在中午聚个会,几个朋友全部到齐后才开始喝酒吃菜。 源码 CyclicBarrier属性和构造器 CyclicBarrier方法 1. await方法 在所有参与者都已经在此 ...

    程序员文章站2022-11-08
  • 1、JDK1.8HashMap源码分析系列文章(comparableClassFor、compareComparables、tieBreakOrder)

    该类方法主要分部在元素的添加(节点树化的相关方法)、查找中,主要涉及以下三个方法:1、comparableClassFor /** * 如果一个对象实现了了Comparable,就返回该类,否则返回null * * @param x 需要判断的对象 * @return java.lang.Class * @Author muyi * @Dat

    程序员文章站2022-10-03
  • 基于JDK1.8,Java容器源码分析

    基于JDK1.8,Java容器源码分析

    容器源码分析 如果没有特别说明,以下源码分析基于 JDK 1.8。 在 IDEA 中 double shift 调出 Search EveryWhere,查找源码文件,找到之后就可以阅读源码。 List ArrayList 1. 概览 实现了 RandomAccess 接口,因此支持随机访问。这是理 ...

    程序员文章站2022-09-07
    IT编程
  • JDK1.8中的ConcurrentHashMap源码分析

    JDK1.8中的ConcurrentHashMap源码分析

    一、容器初始化1、源码分析在jdk8的concurrenthashmap中一共有5个构造方法,这四个构造方法中都没有对内部的数组做初始化, 只是对一些变量的初始值做了处理jdk8的concurrent

    程序员文章站2022-08-28
    IT编程
  • JDK源码分析(8)之 Reference 完全解读

    JDK源码分析(8)之 Reference 完全解读

    在阅读本文之前最好对 Reference 框架有一个整体的把握,可以参考我上一篇博客 "Reference 框架概览" ;本文主要讲了 的子类实现和应用( ); Java 引用的强弱关系 : 一、StrongReference 强引用 :我们通常使用的引用,形如 此时从 stack 中的 o,到 h ...

    程序员文章站2022-08-23
    IT编程
  • JDK源码分析--String的一些解析

    注:以下解析基于JDK1.8.0_74。 一、实现的3个接口1、java.io.SerializableSerializable接口是启用其序列化功能的接口。 实现java.io.Serializable 接口的类是可序列化的。序列化:把对象转换为字节序列的过程称为对象的序列化。反序列化:把字节序列...

    程序员文章站2022-07-14
  • 【Java】JDK源码分析——Boolean

    Boolean源码分析一.概述二.源码分析1.全局变量2.构造方法1)参数为boolean2)参数为String3. parseBoolean方法4. booleanValue方法5.valueOf方法1)参数为boolean2)参数为String6. toString方法1)无参数2)参数为boo...

    程序员文章站2022-07-14
  • jdk自学笔记:Boolean源码分析

    Boolean是基本类型boolean的包装类public final class Boolean implements java.io.Serializable, Comparable<Boolean> p...

    程序员文章站2022-07-14