- 博客(40)
- 收藏
- 关注
原创 每天记录一道Java面试题---day10
深拷贝和浅拷贝就是指对象的拷贝,一个对象中存在两种类型的属性,一种是基本数据类型,一种是实例对象的引用。
2025-01-20 20:51:49
121
原创 每天记录一道Java面试题---day09
如果是JDK1.7,则先判断是否需要扩容,如果要扩容就进行扩容,如果不用扩容就生成Entry对象,并使用头插法添加到当前位置的链表中。
2025-01-16 20:50:00
184
原创 每天记录一道Java面试题---day08
HashMap和HashTable有什么区别?其底层实现是什么?区别:HashMap方法没有加锁,线程不安全,HashTable线程安全HashMap允许key和value为null,而HashTable不允许底层实现计算key的hash值,二次hash然后对数组长度取模,对用到数组下标如果没有产生hash冲突,则直接创建Node存入数据如果产生hash冲突,先进行equal比较,相同则取代该元素;不同,则判断链表高度插入链表,链表高度达到8,并且数组长度到64则转变为红黑树,长度低于6
2025-01-15 22:35:15
183
原创 每天记录一道Java面试题---day07
final关键字的作用是什么回答重点修饰类:表示类不可被继承修饰方法:表示方法不可被子类覆盖,但是可以重载修饰变量:表示变量一旦被赋值就不可以更改它的值修饰成员变量:1.如果final修饰的是类变量,只能在静态初始化块中指定初始值或者声明该类变量时指定初始值。2.如果final修饰的是成员变量,可以在非静态初始化块,声明该变量或者构造器中执行初始值。修饰局部变量:系统不会为局部变量进行初始化,局部变量必须有程序员显示初始化,因此使用final修饰局部变量时,即可以在定义时指定默认值,也可以不指
2025-01-14 21:20:20
116
原创 每天记录一道Java面试题---day06
hashCode()与equals()之间的关系回答重点hashcode介绍:hashCode()的作用是获取哈希码,也成为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。hashcode()定义在JDK的Object类中,任何类都包含又hashcode()。散列表存储的是键值对,特点是:能根据“键”快速的检索出对应的“值”。这其中就利用了散列码如果两个对象相等,hashcode一定也相同两个对象相等,对两个对象分别调用equals方法都返回true两
2025-01-14 21:09:48
213
原创 每天记录一道Java面试题---day05
Java中的集合类主要分为两大类:Collection接口和Map接口,前者时存储对象的集合类,后者存储的是键值对(key-value)。Collection接口下又分为List、Set和Queue接口,每个接口有其具体实现类。
2025-01-12 19:46:45
279
原创 每天记录一道Java面试题---day04
数据结构JDK1.7时,ConcurrentHashMap使用的时Segment(分段锁) + HashEntry数组+链表的数据结构JDK1.8及其之后,使用的是数组+链表/红黑树的数据结构锁的类型与粒度JDK1.7的分段锁(Segment)继承了ReentrantLock,Segment容量默认16,不会扩容,也就是默认只能有16个线程同时访问当前数据结构。JDK1.8使用的是synchronized + CAS来保证线程安全的。对于空节点,使用CAS执行添加操作;
2025-01-11 22:17:22
189
原创 每天记录一道Java面试题---day02
在JDK1.8之前,HashMap使用链表来解决哈希冲突。当哈希冲突较多时,链表中的元素增多,查找、插入和删除的时间复杂度从O(1)退化为O(n)。因此子啊JDK1.8引入红黑树,将链表长度超过一定阈值(默认8)时的链表 转换为红黑树,避免性能急剧下降。当链表长度降到6以下时,红黑树会重新退化为链表,保持简单高效。红黑树是一种平衡二叉搜索树,插入、删除、查找操作的时间复杂度为O(logn),在元素多的情况下远优于链表的O(n)。
2025-01-09 23:38:20
162
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人