- 博客(8)
- 收藏
- 关注
原创 Java集合底层数据结构红黑树
Java集合框架中红黑树是最常用的数据结构,被广泛应用于HashSet/TreeSet/HashMap/TreeMap等集合。红黑树因其高效的增删改查操作(O(logN))而备受青睐。文章分析了Tree系列和Hash系列集合的数据结构实现:Tree系列使用单独的红黑树,具有非线性存储特性;Hash系列则综合了数组、链表和红黑树,当链表长度超过8且数组长度超过64时会转变为红黑树以提高效率。文章还详细介绍了红黑树的特性、红黑规则及其与平衡二叉搜索树的比较,指出红黑树在频繁修改数据时的优势。最后简要回顾了集合工
2026-04-09 19:16:55
429
原创 Java集合底层揭秘【ArrayList/迭代器】
本文深入剖析了JDK21中ArrayList的核心源码实现。重点分析了ArrayList的扩容机制,揭示了初始空数组和首次扩容至10的"懒加载"设计,以及后续1.5倍扩容的算法原理。通过迭代器源码解析,阐明了并发修改异常的产生机制——通过modCount变量记录修改次数实现检测。文章展现了Java集合框架精妙的面向对象设计,包括继承、泛型、多态等特性的运用,使复杂功能得以优雅封装。阅读源码不仅能深入理解底层原理,更能学习到工业级代码的设计哲学,是提升编程能力的重要途径。
2026-04-04 18:54:13
616
1
原创 【快速排序】分治思想的魔法
快速排序凭借其高效的O(NlogN)平均时间复杂度成为现代互联网基石算法。文章详细解析了快排的核心思想:通过选取基准数将数组分为左右两部分,再递归处理子数组。关键点包括双指针分区操作、时间复杂度分析(最坏情况O(N²))和空间复杂度(递归栈O(logN))。文中提供了完整的Java代码实现,并强调必须先从右指针开始遍历。最后提到可通过仅递归较小分区的方法将空间复杂度稳定控制在O(logN)。掌握这些思路即可脱离死记硬背,真正理解快排原理。
2026-04-01 20:30:00
498
5
原创 Java周记|API/Object类/大数类/正则表达式/包装类
本文梳理了 Java 常用工具类核心知识点,涵盖 Math 类数学运算方法及水仙花数判断实现;System 与 Runtime 类的时间获取、数组拷贝、虚拟机运行环境检测等操作;Object 类的 toString、equals 重写及深浅克隆要点,Objects 工具类的空安全方法;BigInteger、BigDecimal 大数类的创建与运算规则;正则表达式基础语法、分组与数据爬取技巧;基本类型包装类的自动装箱拆箱、类型转换及缓存机制。
2026-03-29 22:04:00
582
6
原创 Java学习周记03|面向对象专题
摘要 本文系统介绍了Java面向对象编程的高级特性,主要内容包括: static关键字:修饰变量和方法,使其属于类而非对象,可被所有实例共享。适用于工具类和记录共有属性。 继承机制:通过extends实现代码复用,子类继承父类非private成员。使用super访问父类成员和构造方法。 多态特性:基于继承和方法重写,父类引用指向子类对象,运行时执行子类方法。 final关键字:修饰类不可继承,修饰方法不可重写。 访问权限:详细说明public、protected、默认和private四种访问控制范围。 抽象
2026-03-23 18:14:16
513
6
原创 算法专题笔记------一篇讲明白 LeetCode三数之和与四数之和
本文介绍了解决三数之和与四数之和问题的双指针算法,。核心思想是通过排序数组后,采用"定一动二"或"定二动二"策略,配合双指针遍历寻找符合条件的组合。重点讲解了去重和剪枝操作:去重需注意跳过重复元素,剪枝则根据目标值和当前数值关系提前终止无效搜索。文章指出四数之和可视为三数之和的扩展,两者解法一脉相承。最后提供了Java实现代码,并强调了对边界条件的处理要求。这些技巧对解决类似的多数之和问题具有通用性。
2026-03-17 15:34:57
611
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅