- 博客(14)
- 收藏
- 关注
原创 Java HashMap 扩容机制深度解析
通过深入了解 HashMap 扩容原理,合理选择初始容量和负载因子,负载因子参数一般不建议修改,注意并发修改可能引起的问题,都是使用 HashMap 时需要考虑的重要因素。HashMap 的一个关键性能优化就是扩容机制,即在哈希表达到一定负载因子时,自动进行扩容,以保持检索效率。这时,HashMap 会将容量扩大为当前容量的两倍,并将原有的元素重新分配到新的哈希桶中。新的容量是原来容量的两倍,并且是大于等于当前元素数量除以负载因子的最小的2的幂。扩容完成后,将新的哈希表替换为原来的哈希表。
2024-06-07 09:15:00 511
原创 Java 中的 Map 集合:入门篇
在 Java 中, Map 是一个接口,常用的实现类有 HashMap 、 TreeMap 和 LinkedHashMap。了解不同实现类的特性和用法,以及掌握常见问题的解决方案,将使你在日常编程中更加得心应手。本文将深入介绍 Java 中的 Map 集合,包括其基本概念、常见实现类、典型用法以及一些常见问题的解决方案。HashMap 是最常用的 Map 实现类之一,它基于哈希表实现,提供了快速的插入、删除和查找操作。TreeMap 是基于红黑树实现的 Map,它保持了元素的自然排序。
2024-06-06 09:30:00 461
原创 深入了解 Java 中的 Set 集合:典型案例详解
Set 集合在 Java 中是一种非常有用的数据结构,通过本文的例子,我们深入了解了 HashSet 和 TreeSet 的使用方式以及常见操作。在 Java 中,Set 接口是 Collection 接口的子接口,主要有两个常见的实现类:HashSet 和 TreeSet。在 Java 编程中,集合是一种非常重要的数据结构,而 Set 集合则是其中的一种,它具有无序、不可重复的特性。上述例子演示了 HashSet 的基本用法,注意到元素是无序的,而重复的元素不会被添加。重复的元素同样不会被添加。
2024-06-05 09:30:00 337
原创 深入理解Java中的List集合:解析实例、优化技巧与最佳实践
我们将深入探讨 Java List 集合的各种特性、操作和应用,通过实例演示,帮助读者更好地理解和利用 List 集合,从而在实际项目中更高效地运用这个强大的工具。ListIterator 是 List 集合的迭代器,相比普通迭代器,ListIterator 更强大,可以在迭代过程中进行元素的修改、添加、删除等操作。这个简单的例子展示了 List 的基本操作,但 List 的真正魅力在于其丰富的功能和灵活性,下面我们将深入挖掘。Java 提供了多个 List 的实现类,每个实现类都有其特定的优势和用途。
2024-06-04 09:19:34 866
原创 为什么你用 Java 中的 List 集合总是踩坑
在频繁对 List 进行增删操作时,使用 LinkedList 可能比 ArrayList 更高效,因为 LinkedList 的插入和删除操作的时间复杂度为O(1),而 ArrayList 的时间复杂度为O(n)。subList(int fromIndex, int toIndex) 方法用于获取原列表的一个子列表,但需要注意的是,返回的子列表是原列表的一个视图,对子列表的修改会影响原列表,反之亦然。在 Java 中,用于比较对象的引用是否相同,而不是比较对象的内容是否相同。
2024-06-03 10:14:47 604
原创 两款 IntelliJ IDEA 的 AI 编程插件
介绍两款 IntelliJ IDEA 的 AI 编程插件:通义灵码和 CodeGeeX。这是由阿里推出的一个基于通义大模型的 AI 编码助手。它提供了代码智能生成、研发智能问答等功能。通义灵码经过海量优秀开源代码数据训练,可以根据当前代码文件及跨文件的上下文生成行级/函数级代码、单元测试、代码注释等。Java、Python、Go、C/C++、JavaScript、TypeScript、PHP、Ruby、Rust、Scala 等主流编程语言。
2024-06-02 11:07:16 8991
原创 深入理解Java中的List集合:解析实例、优化技巧与最佳实践
ListIterator 是 List 集合的迭代器,相比普通迭代器,ListIterator 更强大,可以在迭代过程中进行元素的修改、添加、删除等操作。在实际开发中,根据项目需求和性能要求选择合适的 List 实现类,并结合最佳实践进行使用,将有助于提高代码效率和可维护性。这个简单的例子展示了 List 的基本操作,但 List 的真正魅力在于其丰富的功能和灵活性,下面我们将深入挖掘。与数组不同,List 集合的大小是动态可变的,可以根据需要动态地添加或删除元素。
2024-06-02 09:56:35 1129
原创 Java集合:数据存储与操作的瑞士军刀
同时注意,循环遍历集合时,不能操作集合里面的元素,不然会抛出异常ConcurrentModificationException,正确应该是使用 Iterator 迭代器,在迭代器里面 进行元素的操作。它为集合类提供了一种类型参数化的机制,使得在集合声明时可以指定集合中元素的类型。在 Java 编程中,集合是不可或缺的一部分。Java集合框架为各种常见的数据操作提供了统一的接口和实现,极大地简化了代码并提高了程序的性能。Java集合提供了丰富的方法,用于添加、删除、检索和修改元素,使数据操作变得简单高效。
2024-06-01 10:00:00 302
原创 Java开发工具|推荐收藏
Visual Studio Code:微软旗下的产品,Visual Studio Code 是一款轻量级代码编辑器,支持多种编程语言,包括 Java。它具有优秀的代码高亮、智能提示和代码片段功能,适合快速开发和轻量级项目。Visual Studio Code 的性能和资源占用较低,但相对于其他 IDE,其调试和性能分析功能较弱。它具有强大的代码编辑、调试和性能分析功能,支持插件扩展,可以满足不同开发需求。Java 是一种广泛使用的编程语言,拥有多种开发工具,包括集成开发环境(IDE)和代码编辑器。
2024-05-30 10:56:19 1762
原创 线上止损的坑,为啥 128 == 128 是 false?
这里要说到 Java 的 Integer 常量池,常量池维持着:-128~127 数据范围的数据,在这范围内的数字,则直接进行比较,不在这范围内的,则是 Java 对象的比较,对象比较的引用地址;可以看到 jdk 源代码里面 equals(Object obj) 方法最后也是使用 int 类型数据来判断的。Integer 是 基本数据类型 int 的包装类型。可以看到 jdk 源代码里面 intValue()方法直接返回一个 int 类型数据。采用缓存的设计,也是基于运行效率的考量。
2024-05-29 18:21:01 343
原创 Java 版本的段子
如果你想在没有付费的情况下使用 Oracle JDK,你需要使用免费的 Oracle GraalVM Community Edition,或者使用其他供应商提供的 OpenJDK 构建版本,如 AdoptOpenJDK、Amazon Corretto、Azul Zulu 等。当前常用 Java 22,Java 21,Java 17,和 Java 8,其中,Java 17和Java 8是长期支持的版本。然而,随着 Java 11 的发布,Oracle 对 Java 的许可证进行了重大更改。
2024-05-28 21:40:04 235
原创 为什么你用 Java 写 Hello World 就是不通
用户变量 Path 和系统变量 Path 分不清,不知道两者区别,用户变量对于当前用户生效,系统变量对于所有用户生效。建议个人初学者,配置系统变量即可。
2024-05-24 11:29:30 341
原创 Java 最新开发工具包 JDK22 安装教程
保存文件并重新加载配置:source ~/.bash_profile。编辑配置 Path 变量,配置 jdk 的 bin 的目录。打开终端,输入命令:vi ~/.bash_profile。新增配置 JAVA_HOME,为 jdk 的安装路径。点击我的电脑-属性-高级系统设置。选择路径后,一路默认安装。
2024-05-23 09:48:59 4215 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人