源码笔记
文章平均质量分 72
源码笔记
李景琰
专注Java/Go/Python/大数据/前端/文档/运维等,网站/后台/小程序/H5/电脑DIY等。
沉淀、成长、突破,超越自己,才是真的高贵!
展开
-
ArrayList底层实现原理
jdk 1.2 ~ jdk 1.6 中,ArrayList 的确是会通过空参构造方法生成一个指定底层数据结构容量为 10 的空数组。ArrayList最早出现在 JDK 1.2中,底层基于数组实现,它是一个动态数组列表结构的容器。ArrayList最早出现在 JDK 1.2中,底层基于数组实现,它是一个动态数组列表结构的容器。增加ArrayList实例的容量,如果必需的,以确保它至少可以容纳元素的数量由最小容量参数指定。将ArrayList实例的容量缩减为列表的当前大小。应用程序可以使用此操作最小化。原创 2023-09-04 17:13:35 · 243 阅读 · 0 评论 -
Java线程池及其实现原理
线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中,如MySQL。线程过多会带来额外的开销,其中包括创建销毁线程的开销、调度线程的开销等等,同时也降低了计算机的整体性能。线程池维护多个线程,等待监督管理者分配可并发执行的任务。这种做法,一方面避免了处理任务时创建销毁线程开销的代价,另一方面避免了线程数量膨胀导致的过分调度问题,保证了对内核的充分利用。使用线程池可以带来的一系列好处降低资源消耗:通过池化技术重复利用已创建的线程,降低线程创建和销毁造成的损耗。原创 2023-05-06 15:57:48 · 1194 阅读 · 0 评论 -
HashMap底层实现原理
通过对cap进行位移或操作计算,获取扩容阈值2的幂次方。此时这里的阈值threshold不是初始容量*负载因子,不必在意,这只是临时的,真正设置threshold在后面put方法中。HashMap 最早出现在 JDK 1.2中,底层基于散列算法实现,它是一个key-value结构的容器。JDK1.8 版本的HashMap,底层数据使用数组 + 链表/红黑树实现。Node的数据结构是一个链表结构,红黑树也是基于Node的数据结构构建得到。计算key.hashCode()并将哈希的高位数扩展到低位数。原创 2023-05-04 12:09:14 · 9161 阅读 · 0 评论