自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2)
  • 收藏
  • 关注

原创 源码解析(1)ArrayList 源码解析(JDK8):扩容、增删原理与 fail‑fast 机制深度剖析

ArrayList的核心并不复杂:它本质上就是一个动态数组。默认构造采用延迟分配,第一次添加元素时容量通常扩展到 10。数组不足时,容量一般扩展为原来的 1.5 倍。查询和修改速度快,但中间位置的插入、删除需要移动元素。modCount与迭代器共同实现 fail-fast 机制。序列化只保存有效元素,避免无意义地保存数组空位。subList()是原列表的视图,不是独立副本。Java 8 为forEachremoveIfreplaceAllsort等方法提供了针对数组结构的优化实现。

2026-09-08 21:14:37 398

原创 希尔排序比插入排序还慢?实测出乎意料

希尔排序并非简单重复插入排序,而是先用较大gap让远距离错位元素大范围移动,再逐步缩小gap,最后gap=1插入排序时数组已接近有序,因而减少大量“小步移动”。但对比实验显示,在基本有序、规模小时,额外轮次反而增负,故不能断言希尔排序无条件更快;其性能取决于数据与gap序列选择。

2026-09-03 12:02:20 386

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除