随笔分类 -  源码

源码分析与学习
摘要:###前言 以前只知道ReentrantLock底层基于AQS实现,相对于(旧版本的)synchronized: 更轻量(基于CAS而不是管程),由JDK实现 可以实现公平/非公平 可中断等待 可绑定多个条件,以选择性地通知其他进程解除等待。 那在我们分析ReentrantLock源码之前,首先了解 阅读全文
posted @ 2022-04-05 23:03 吉比特 阅读(214) 评论(0) 推荐(0) 编辑
摘要:##线程池核心方法execute()解析: public void execute(Runnable command) {//#1 if (command == null) throw new NullPointerException(); int c = ctl.get(); if (worker 阅读全文
posted @ 2022-04-03 20:52 吉比特 阅读(242) 评论(0) 推荐(1) 编辑
摘要:首先我们要知道,在理想情况下的哈希表中,哈希函数生成的哈希值是value在数组中的下标,其范围是分布于负无穷到正无穷的整个实整数轴的。而在现实情况下,是不可能存在这么大的一个数组的。接下来分析HashMap怎么处理: HashMap的put方法: public V put(K key, V valu 阅读全文
posted @ 2022-04-03 16:15 吉比特 阅读(140) 评论(0) 推荐(0) 编辑
摘要:在看HashSet源码的时候,意外发现底层HashMap保存的value居然不是null,而是保存一个Object作为Value。顿觉有悖常理,于是来分析一下: HashSet的add方法: public boolean add(E e) {return map.put(e, PRESENT)==n 阅读全文
posted @ 2022-04-03 14:55 吉比特 阅读(46) 评论(0) 推荐(0) 编辑
摘要:单例模式双重检测java实现: public class Singleton { private volatile static Singleton instance = null; //#1 public static Singleton getInstance() { if (instance 阅读全文
posted @ 2022-04-03 14:07 吉比特 阅读(751) 评论(0) 推荐(1) 编辑

欢迎阅读『源码』
点击右上角即可分享
微信分享提示
主题色彩