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 · 654 阅读 · 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 · 651 阅读 · 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 · 744 阅读 · 0 评论