java语言特性
文章平均质量分 50
侠客岛主
这个作者很懒,什么都没留下…
展开
-
hashcode与HashMap
hashcode是对象在hash表中对应的位置.而hash可能会发生hash冲突,所以可能存在不同对象hashcode是相同的.class Solution { public static void main(String[] args) { Integer a = 223; Integer b = 223; System.out.println(a == b); System.out.println(a.hashCode() ==原创 2021-06-02 07:28:23 · 665 阅读 · 0 评论 -
HashMap并发扩容死循环问题
HashMap没有使用考虑并发问题,必然是线程不安全的。HashMap1.7每一个桶使用的是单向链表实现。而扩容采取的是头插法。1.什么是头插法?链表反转的迭代写法就是经典的头插法例如链表:1——>2设反转后为:reverse=null;那么依次取链表的节点插入反转后的头部,并把当前节点赋给resvese就是头插法。下面是简要代码:class ListNode { ... public ListNode reverseNode(ListNode root){ ListNod原创 2021-04-30 12:52:14 · 669 阅读 · 0 评论 -
java数组判断是否为空
if(arr==null ||arr.length==0)return true;第一条件:arr数组不为null,是判断数组是否初始化;第二个条件:arr数组长度为0;这似乎不符合常理;但是下面代码输出false;原来java允许初始化一个长度为0的数组int[] x = new int[0];System.out.println(x == null);...原创 2020-07-22 13:10:11 · 754 阅读 · 0 评论