摘要: HashMap 死循环发生在 JDK 1.8 之前的版本中,它是指在并发环境下,因为多个线程同时进行 put 操作,导致链表形成环形数据结构,一旦形成环形数据结构,在 get(key) 的时候就会产生死循环。如下图所示: ![image.png](https://cdn.nlark.com/yuqu 阅读全文
posted @ 2023-05-23 08:16 javacn_site 阅读(95) 评论(0) 推荐(1) 编辑
摘要: Java 面试中不可能不问 HashMap,问到 HashMap 就会问到哈希冲突的解决方案,相信很多人也遇到过了,所以这里就详细的总结复盘一下。 哈希冲突是指在哈希表中,两个或多个元素被映射到了同一个位置的情况。 ```java String str1 = "3C"; String str2 = 阅读全文
posted @ 2023-05-22 08:26 javacn_site 阅读(156) 评论(0) 推荐(0) 编辑
摘要: HashMap 在不同的 JDK 版本下的实现是不同的,在 JDK 1.7 时,HashMap 底层是通过数组 + 链表实现的;而在 JDK 1.8 时,HashMap 底层是通过数组 + 链表或红黑树实现的。 具体来说,HashMap 内部维护了一个数组,每个数组元素又是一个链表或者红黑树,每个链 阅读全文
posted @ 2023-05-19 07:46 javacn_site 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 在 Java 中,反射是指在运行时检查和操作类、接口、字段、方法等程序结构的能力。通过反射,可以在运行时获取类的信息,创建类的实例,调用类的方法,访问和修改类的字段等。 反射实现 先定义一个需要被反射的类对象 User: public class User { public String name 阅读全文
posted @ 2023-05-18 08:35 javacn_site 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 什么是克隆? 在编程中,克隆是指创建一个与原始对象相同的新对象。这个新对象通常具有与原始对象相同的属性和方法,但是它们是两个不同的对象,它们在内存中的位置不同。在 Java 中,可以通过实现 Cloneable 接口和重写 clone() 方法来实现对象的克隆。 什么是浅克隆和深克隆?它们有什么区别 阅读全文
posted @ 2023-05-17 07:27 javacn_site 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 在 Java 中,抽象类和接口是两种不同的类类型。它们都不能直接实例化,并且它们都是用来定义一些基本的属性和方法的,但它们有以下几点不同: 定义:定义的关键字不同,抽象类是 abstract,而接口是 interface。 方法:抽象类可以包含抽象方法和具体方法,而接口只能包含方法声明(抽象方法)。 阅读全文
posted @ 2023-05-16 09:56 javacn_site 阅读(81) 评论(0) 推荐(0) 编辑