死磕Java集合
文章平均质量分 94
参照彤哥的死磕Java集合系列文章写的,是针对JDK18的源码进行分析,希望大家能对JDK18的集合相关类会有更深刻的认识。
因为内容与彤哥文章类似,已与彤哥沟通取得一致意见,会在文末附上彤哥的原文链接。
到道可道
热爱技术,热爱生活,是我对自己与自己的憧憬。
展开
-
死磕Java集合之BitSet源码分析(JDK18)
因为Java中没有new bit[]这种直接创建一个bit数组的方式,所以Java提供了BitSet来实现位图,BitSet是采用一个long型的数组来实现位图的。BitSet的首个long型数组表示的是[0, 63]这64个元素。BitSet中的实现充分利用了位运算,速度很快,因为是位图,所以占用空间也比较小。下面是boolean数组和BitSet的空间占用对比可以看出boolean数组,占用的空间是1040 bytes,BitSet占用的空间是24 + 144 = 168 bytes。原创 2023-02-21 01:16:14 · 203 阅读 · 0 评论 -
死磕java集合之CopyOnWriteArrayList源码分析(JDK18)
死磕java集合之CopyOnWriteArrayList源码分析(JDK18)简介CopyOnWriteArrayList是ArrayList的线程安全版本,内部也是通过数组实现,每次对数组的修改都完全拷贝一份新的数组来修改,修改完了再替换掉老数组,这样保证了只阻塞写操作,不阻塞读操作,实现读写分离。继承体系CopyOnWriteArrayList实现了List, RandomAccess, Cloneable, java.io.Serializable等接口。CopyOnWriteArray原创 2022-05-09 22:44:50 · 170 阅读 · 0 评论 -
死磕java集合之ArrayList源码分析(JDK18)
死磕java集合之ArrayList源码分析(JDK18)简介ArrayList是一种以数组实现的List,与数组相比,它具有动态扩展的能力,因此也可称之为动态数组。继承体系ArrayList实现了List, RandomAccess, Cloneable, java.io.Serializable等接口。ArrayList实现了List,提供了基础的添加、删除、遍历等操作。ArrayList实现了RandomAccess,提供了随机访问的能力。ArrayList实现了Cloneable,可原创 2022-05-09 17:06:15 · 310 阅读 · 0 评论 -
死磕java集合之PriorityQueue源码分析(JDK18)
参照彤哥的死磕集合系列,死磕jdk18的集合相关类原创 2022-05-09 17:00:05 · 179 阅读 · 1 评论