文章 2021-12-13 来自:开发者社区

啃透JDK源码-LinkedList(上)

0 前言与 ArrayList 一样实现了 List 接口,只是 LinkedList 底层结构为链表.在插入和删除时更优于 ArrayList,而随机访问则比 ArrayList 稍逊.其允许元素包括 null.除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端....

啃透JDK源码-LinkedList(上)
文章 2021-12-13 来自:开发者社区

啃透JDK源码系列-Arrays核心源码解析

0 前言此类包含用于操纵数组的各种方法(例如排序和搜索)。 此类还包含一个静态工厂,该工厂允许将数组视为列表。如果指定的数组引用为null,则除非另有说明,否则此类中的方法都抛出NullPointerException。此类中所包含方法的文档包括对实现的简要说明。 此类描述应被视为实现的说明,而不是标准。只要遵守规范本身,实现者就可以随意替换其他算法.(例如sort(Object[] 使用的算法....

啃透JDK源码系列-Arrays核心源码解析
文章 2021-12-09 来自:开发者社区

JDK集合源码之LinkedList解析

声明:尊重他人劳动成果,转载请附带原文链接!1.LinkedList继承体系LinkedList:LinkedList是一个以双向链表实现的List,它除了作为List使用,还可以作为队列或者栈来使用。从继承体系可以看出,LinkedList实现了Cloneable和Serializable接口,说明其可以被克隆,也可以被序列化!同样的,LinkedList被克隆的时候,和ArrayList一样....

JDK集合源码之LinkedList解析
文章 2021-12-09 来自:开发者社区

JDK集合源码之HashMap解析(上)

声明:转载请附带原文链接!超长文章警告:耐心看下去肯定有收获!0.前言提示:对于初识HashMap的小伙伴来说,不推荐直接硬啃,建议先看一下如下几个视频教程之后在回头自己反复琢磨。(一遍不懂反复看,一小块儿一小块的找博客阅读)小刘老师讲HashMap源码黑马程序员HashMap源码小刘老师讲红黑树HashMap简述:HashMap 基于哈希表的 Map 接口实现,是以 key-value 存储形....

JDK集合源码之HashMap解析(上)
文章 2021-12-09 来自:开发者社区

JDK集合源码之HashMap解析(下)

特别说明:由于HashMap底层的红黑树结构比较复杂,因此涉及红黑树相关的操作,我单独写博客为大家分享,文章最后会加上红黑树文章链接!5.HashMap的成员方法5.1 put(K key, V value)方法put方法是比较复杂的,实现步骤大致如下:先通过 hash 值计算出 key 映射到哪个桶;如果桶上没有碰撞冲突,则直接插入;如果出现碰撞冲突了,则需要处理冲突:a 如果该桶使用红黑树处....

JDK集合源码之HashMap解析(下)
文章 2021-12-09 来自:开发者社区

JDK集合源码之ArrayList解析(附带面试题举例)

声明:尊重他人劳动成果,转载请附带原文链接!1. ArrayList 继承体系ArrayList 又称动态数组,底层是基于数组实现的List,与数组的区别在于,其具备动态扩展能力。从继承体系图中可看出ArrayList:public class ArrayList<E> extends AbstractList<E> implements List<...

JDK集合源码之ArrayList解析(附带面试题举例)
文章 2021-12-09 来自:开发者社区

IDEA中配置阅读并编辑jdk8源码的环境

前言JDK官方下载地址:https://www.oracle.com/java/technologies/javase-downloads.htmlopenJDK下载地址:http://jdk.java.net/java-se-ri/8-MR3版本要求:JDK8开发工具:IDEA2020导入jdk 源码压缩包将source path 进行重新指定,这样可以对源码进行修改:注意:将jdk源码src....

IDEA中配置阅读并编辑jdk8源码的环境
文章 2021-12-08 来自:开发者社区

JDK集合源码之HashSet解析

HashSet的特点无序性(存储元素无序)唯一性(允许使用null)本质上,HashSet底层是通过HashMap来保证唯一性HashSet没有提供get()方法,同HashMap一样,因为Set内部是无序的,所以只能通过迭代的方式获得HashSet的继承体系HashSet源码分析1. 属性(成员变量)// HashSet内部使用HashMap来存储元素,因此本质上是HashMap privat....

JDK集合源码之HashSet解析
文章 2021-12-08 来自:开发者社区

JDK集合源码之LinkedHashMap解析

LinkedHashMap内部维护了一个双向链表,能保证元素按插入的顺序访问,也能以访问顺序访问。LinkedHashMap可以看成是 LinkedList + HashMap。LinkedHashMap继承HashMap,拥有HashMap(参考链接:JDK集合源码之HashMap解析)的所有特性,并且额外增加了按一定顺序访问的特性,LinkedHashMap 默认存储顺序为插入顺序,也可按照....

JDK集合源码之LinkedHashMap解析
文章 2021-12-08 来自:开发者社区

JDK集合源码之Vector解析

ArrayList 和 Vector 其实大同小异,基本结构都差不多,但是一些细节上有区别:比如线程安全与否,扩容的大小等,Vector的线程安全通过在方法上直接加synchronized实现。扩容默认扩大为原来的2倍。继承体系从图中我们可以看出:Vector继承了AbstractList,实现了List,RandomAccess,Cloneable,Serializable接口,因此Vecto....

JDK集合源码之Vector解析

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐