• ArrayList、CopyOnWriteArrayList源码解析(JDK1.8)

    时间:2023-02-21 16:30:48

    本篇文章主要是学习后的知识记录,存在不足,或许不够深入,还请谅解。目录ArrayList源码解析ArrayList中的变量ArrayList构造函数ArrayList中的add方法ArrayList中的add(插入指定位置)方法ArrayList中的get方法ArrayList中的remove(in...

  • 给jdk写注释系列之jdk1.6容器(12)-PriorityQueue源码解析

    时间:2023-02-14 21:32:33

    PriorityQueue是一种什么样的容器呢?看过前面的几个jdk容器分析的话,看到Queue这个单词你一定会,哦~这是一种队列。是的,PriorityQueue是一种队列,但是它又是一种什么样的队列呢?它具有着什么样的特点呢?它的底层实现方式又是怎么样的呢?我们一起来看一下。     Prior...

  • ArrayList源码解析——JDK1.8

    时间:2023-01-21 19:35:46

    转载:http://www.cnblogs.com/skywang12345/p/3308556.html1、ArrayList介绍ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List, RandomAcc...

  • jdk1.7源码之-hashMap源码解析

    时间:2022-12-31 17:01:09

    背景:笔者最近这几天在思考,为什么要学习设计模式,学些设计模式无非是提高自己的开发技能,但是通过这一段时间来看,其实我也学习了一些设计模式,但是都是一些demo,没有具体的例子,学习起来不深刻,所以我感觉我可能要换一条路走,所以我现在想法是看一些源码的东西,一方面是因为自己大部分的源码其实没有看过,...

  • Java集合框架--LinkedList源码解析(JDK1.7)

    时间:2022-12-16 17:21:00

    LinkedList类是List接口和Queue接口的底层实现类,它的底层通过双向链表实现,是一种线性的数据结构。一、链表的基础知识链表是由一系列非连续的节点组成的存储结构,简单分下类的话主要分为单向链表、单向循环链表、双向链表、双向循环链表四种。其实LinkedList的底层就是双向链表实现的,之...

  • JDK 1.8 源码解析 LinkedList

    时间:2022-12-10 17:19:50

     LinkedList原理: 1 基于循环双链表,持有首尾结点引用和存储了元素数量,适合元素的添加和删除。链表结点类包含存储的元素、前驱结点引用和后继结点引用。 2 size方法用于获取元素数量,isEmpty方法用于判断是否为空。 3 实现了List接口,add方法用于尾部插入指定元素,remo...

  • LinkedList源码解析(JDK1.8)

    时间:2022-11-25 17:21:02

    1 package java.util; 2 3 import java.util.function.Consumer; 4 5 /** 6 * LinkedList是List和Deque接口的双向链表的实现。实现了所有可选List操作,并允许包括null值。 ...

  • 万字干货_JDK动态代理及其源码解析 拿捏了

    时间:2022-11-15 12:05:35

    目录代理模式静态代理静态代理和动态代理的区别?什么是静态、动态?静态代理的使用步骤示例静态代理的缺陷解决静态代理的缺陷的思路JDK动态代理JDK 动态代理类使用步骤示例底层原理补充: CGLIB动态代理CGLIB 动态代理类使用步骤示例JDK 动态代理和 CGLIB 动态代理对比作者:小牛呼噜噜 |...

  • String,StringBuffer和StringBuilder源码解析[基于JDK6]

    时间:2022-11-14 04:01:32

    最近指导几位新人,学习了一下String,StringBuffer和StringBuilder类,从反馈的结果来看,总体感觉学习的深度不够,没有读出东西。其实,JDK的源码是越读越有味的。下面总结一下我读这些源码的收获吧。注意:虽然源码的版本是JDK6,但是个人觉得学习这个版本的源码对于理解数据结构...

  • ArrayList源码解析(JDK1.8)

    时间:2022-10-26 19:35:40

    1 package java.util; 2 3 import sun.misc.SharedSecrets; 4 5 import java.util.function.Consumer; 6 import java.util.function.Predicate...

  • JDK8:HashMap源码解析:9:comparableClassFor、compareComparables、tieBreakOrder方法

    时间:2022-10-07 17:15:27

    一、概述 在之前的文章里已经分析过,在发生hash碰撞(多个key的hash值相同)的时候,hashMap首先会采用链表进行存储,当链表节点数量达到一定阈值(8)会将链表上的节点再组织成一棵红黑树。红黑树是一种二叉树,每个父节点可以由左右两个节点。 当put一个新元素时,如果该元素键的hash值小于...

  • JDK 源码解析 —— HashSet

    时间:2022-09-30 17:55:05

    零. 简介 这个类实现了 Set 接口,内部是由 HashMap 实例辅助实现的。它不保证元素的顺序,数据允许为 null。 假如 hash 方法将数据分散地比较合理,比如一个 bucket 一个数据,那么 add、remove、contains、size 性能开销是常数时间。 这个类非线程安全...

  • 【集合源码】HashMap源码解析(基于JDK 1.8)

    时间:2022-09-11 17:20:20

    HashMap简介 源码解析 小结 HashMap简介 1.基于JDK 1.8的HashMap有三种数据结构,数组,链表,红黑树。 2.HashMap是非线程安全的。多线程环境下可以采用concurrent并发包下的concurrentHashMap。 3.HashMap存储的内容...

  • JDK源码之PriorityQueue解析

    时间:2022-09-07 18:03:51

    这篇文章主要为大家详细介绍了JDK源码之PriorityQueue,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  • Java 并发工具包-java.util.concurrent-源码jdk1.7全面解析

    时间:2022-08-15 17:36:32

    先来看看类图: 其实从类图我们能发现concurrent包(除去java.util.concurrent.atomic 和 java.util.concurrent.locks)中的内容并没有特别多,大概分为四类:BlockingQueue阻塞队列体系、Executor线程组执行框架、Futur...

  • java ConcurrentHashMap源码解析 (jdk1.7)

    时间:2022-07-22 17:37:11

    一、概述 1.ConcurrentHashMap是HashMap的线程安全且高效的实现 2.ConcurrentHashMap采用分段锁技术,只有在同一个分段内才会存在竞争关系,不同的分段锁之间没有锁竞争。 3.ConcurrentHashMap的主干是Segment数组,Segment继承了Ree...

  • ConcurrentHashMap源码解析(jdk1.8)

    时间:2022-07-22 17:19:47

    ConcurrentHashMap 基于JDK1.8 ConcurrentHashMap 1. 原理解析 1.1. 重要成员变量 1.2. 实例初始化 1.3. put操作 1.3.1 put过程描述 ...

  • ArrayList源码解析(jdk1.8)

    时间:2022-05-19 19:37:10

    概述ArrayList是基于数组实现的,它可以动态的增加和减少元素,灵活的设置数组的大小。构造方法分析该类,我们从构造方法中开始:private static final int DEFAULT_CAPACITY = 10;transient Object[] elementData;private...

  • JDK源码解析之LinkedList

    时间:2022-04-16 14:34:20

    一、 LinkedList简介         LinkedList 跟 ArrayList一样实现了List接口,但跟ArrayList不同的是ArrayList采用的是数组作为存储元素的容器,所以ArrayList可以直接用角标获取元素,所以ArrayList查询效率较高, 但在添加和删除元素的...

  • ConcurrentHashMap源码解析(JDK1.8)

    时间:2022-02-05 14:02:07

    package java.util.concurrent; import java.io.ObjectStreamField; import java.io.Serializable; import java.lang.reflect.ParameterizedType; import java.l...