摘要:
原文:https://blog.csdn.net/Leon_cx/article/details/81911223 下面我们来模拟一下多线程场景下扩容会出现的问题: 假设在扩容过程中旧hash桶中有一个单链表,单链表中只有一个节点A,也就是e引用的对象。新hash桶中有一个单链表,单链表中的节点是B 阅读全文
摘要:
原文:https://blog.csdn.net/tongdanping/article/details/79647337 锁的优化1、锁升级锁的4中状态:无锁状态、偏向锁状态、轻量级锁状态、重量级锁状态(级别从低到高) (1)偏向锁: 为什么要引入偏向锁? 因为经过HotSpot的作者大量的研究发 阅读全文
摘要:
原文:https://blog.csdn.net/zjy15203167987/article/details/82531772 1.为什么要使用synchronized 在并发编程中存在线程安全问题,主要原因有:1.存在共享数据 2.多线程共同操作共享数据。关键字synchronized可以保证在 阅读全文
摘要:
原文:https://www.cnblogs.com/yangfeiORfeiyang/p/9694383.html 大家应该都知道ConcurrentHashMap在1.8的时候有了很大的改动,当然,我这里要说的改动不是指链表长度大于8就转为红黑树这种常识,我要说的是ConcurrentHashM 阅读全文
摘要:
1.为什么用数组+链表? 1.为什么用数组+链表? 数组是用来确定桶的位置,利用元素的key的hash值对数组长度取模得到. 数组是用来确定桶的位置,利用元素的key的hash值对数组长度取模得到. 链表是用来解决hash冲突问题,当出现hash值一样的情形,就在数组上的对应位置形成一条链表。ps: 阅读全文
摘要:
原文:https://blog.csdn.net/xqhadoop/article/details/62237437 通过我们的程序中运行完之后都会进行一些清理工作,比如关闭数据库资源,同步等操作。这时我们的钩子函数addShutdownHook有了用武之地。 1.钩子程序执行时机: 当程序正常退出 阅读全文
摘要:
原文:https://github.com/Wisdom-Projects/holer 阅读全文
摘要:
原文:https://www.e-learn.cn/content/java/1078244 一、 equals和 == 的比较1、== 运算符① == 如果比较的是基本数据类型,则比较的是值。② == 如果比较的是引用数据类型,则比较的是地址值。2、equals①它属于java.lang.Obje 阅读全文
摘要:
java编程里有关约定:如果两个对象根据equals方法比较是相等的,那么调用这两个对象的任意一个hashcode方法都必须产生相同的结果。 hashcode()和equals()都继承于object,在Object类中的定义为: equals()方法在Object类中的定义: hashCode() 阅读全文
摘要:
原文:https://www.liaoxuefeng.com/article/1256136507802816 正确使用Map,只需要正确实现hashCode()和equals()就行了吗? 恐怕还不行。 确切地说,如果使用的是HashMap,那么只需要正确实现hashCode()和equals() 阅读全文