java面试
为java面试做准备
加棉
这个作者很懒,什么都没留下…
展开
-
负载因子为什么会影响HashMap性能?为什么HashMap的负载因子默认为0.75?
HashMap的数据结构和HashMap的产生HashMap的数据结构和HashMap的产生我们都知道有序存储数据,对数据的索引效率都很高,但是插入和删除就会有性能瓶颈,存储数据,要一次比较元素来检索出数据,所以索引效率低,但是插入和删除效率高,,也就是HashMap的存储逻辑.原创 2024-03-22 15:29:46 · 285 阅读 · 0 评论 -
Integer自动包装底层已为-127~128创建了Integer对象
1.当对-127~128范围内的数字进行包装时,直接返回对象,不需要new2.当对不在-127~128范围内的数字进行包装时,需要new对象再返回原创 2023-07-14 10:49:31 · 127 阅读 · 1 评论 -
ArrayList 和 LinkedList 的区别
如果需要频繁地进行随机访问操作,可以选择ArrayList。如果需要频繁地进行插入和删除操作,可以选择LinkedList。另外,如果对内存空间的占用有较高要求,或者需要在中间位置插入和删除元素,也可以选择LinkedList。原创 2023-07-07 23:19:23 · 1909 阅读 · 1 评论 -
为什么重写 equals 还要重写 hashcode?
因为HashMap是用equals判断键是否相等的,用反证法,如果两个键 equals相等,而hashcode不等的话,那么就无法保证通过hashcode计算的下标值相等,下标值不等也就意味着相等的两个键却 到了不同的值,这肯定是不对的。当从map中获取equals不等的两个键时,由于它们的hashcode相同,所以计算到的下标值也相同,当定位到同一个桶位时,会在单链表上顺序查找,查找到的依据就是要查找的键与单链表上的键equals相等。equals不等,hashcode不一定不等。原创 2023-07-07 23:02:46 · 235 阅读 · 1 评论 -
为啥有时会出现 4.0 - 3.6 = 0.40000001 这种现象?
这种现象是由于浮点数计算的精度问题引起的。在计算机中,浮点数是以二进制形式存储的,而不是以十进制形式表示。由于浮点数的二进制形式无法精确地表示某些十进制数字,因此在进行浮点数计算时,可能会出现舍入误差。 可以使用 BigDecimal 类来进行精确的浮点数计算。原创 2023-07-07 23:10:50 · 459 阅读 · 1 评论