Java集合框架
未读
LinkedList源码详解-Java21版
本文深入探讨了Java集合框架中的LinkedList数据结构。作者以生动的方式,通过对比LinkedList和ArrayList的不同,阐述了LinkedList在处理数据插入、删除操作时的优势。文章详细解释了LinkedList的内部结构和操作原理,包括单向链表、双向链表和二叉树的层次,以及增删改查的具体实现方式。最后,作者指出LinkedList在实现LRU缓存淘汰算法等方面的应用潜力,强调不同数据结构各有优势,应根据具体需求选择合适的工具。
Java集合框架
未读
ArrayList源码详解-Java21版
本文详细解析了Java 21版ArrayList源码,重点介绍了其基于数组实现、自动扩容机制、增删改查方法等核心特性。文章从创建、添加、更新、删除、查找等操作入手,详细分析了相关源码实现,揭示了ArrayList在处理结构性修改时的“快速失败”机制。通过分析,读者可以深入了解ArrayList的内部结构和运行原理,为在实际开发中高效使用ArrayList提供参考。
Java集合框架
未读
Java21特性之顺序集合
Java 21引入了Sequenced Collections,一种有序且线程安全的集合类型,旨在解决多线程环境下处理大量数据的需求。Sequenced Collections具有有序性、线程安全性,并提供了统一的接口和方法。主要包括SequencedCollection、SequencedSet和SequencedMap三个接口,分别继承Collection、Set和Map接口。其使用示例展示了如何添加、获取和遍历集合中的元素,为Java集合框架带来了深远影响。
Java重要知识
未读
Java字符串底层实现改变的原因
Java中`String`的底层从`char[]`转向`byte[]`是为了优化内存使用和增强编码灵活性。早期设计导致内存浪费和编码转换开销,而Java 9引入的紧凑字符串通过使用`byte[]`和编码标识符解决了这些问题。这一转变显著提升了内存效率,减少了GC工作量,并可能提高CPU缓存命中率,同时对开发者透明,保持了API的稳定性。
Java重要知识
未读
一文看懂JDK 8~21 LTS版本的新特性
本文介绍了Java 8至21 LTS版本的新特性。Java 8引入了Lambda表达式、Stream API和Optional类等,Java 11新增了String方法、文件操作方法和局部变量自动推断等,Java 17则恢复了严格的浮点语义、引入了更强大的伪随机数生成器并删除了Applet API,Java 21则带来了虚拟线程、统一有序集合的操作接口和record模式等新特性。这些新特性旨在提高Java编程的效率和安全性,并推动Java技术的发展。
Java语法基础
未读
为什么Java字符串是不可变的
本文探讨了Java字符串不可变性的重要性,主要论据包括:1)保障String对象安全性,防止篡改,如用户名和密码的存储;2)保证哈希值不会频繁变更,提高哈希表等数据结构的性能;3)实现字符串常量池,节省内存。通过示例代码,说明了不可变性如何防止数据篡改,以及哈希值缓存机制,最后强调了字符串操作(如`substring()`和`concat()`)总是生成新对象,而非在原对象上修改。
Java面向对象
未读
Java的instanceof关键字
本文介绍了Java中的instanceof关键字,用于判断对象是否属于指定类型。通过实例代码,阐述了instanceof的用法,包括检查继承关系、接口实现关系以及与Object类的隐式继承。文章还探讨了null对象与instanceof的关系,并展示了如何使用instanceof进行类型判断和强制转换。最后,介绍了JDK 16中instanceof模式匹配的改进,使类型判断更加便捷。
Java面向对象
未读
方法重写Override和方法重载Overload有什么区别?