
源码
DatDreamer
这个作者很懒,什么都没留下…
展开
-
泛型数组List和数组转换常见方法归纳 + 流方法解析
本文为归纳总结,不会具体说明用法或案例,但会附上相关链接此外,迭代可以完成任意操作,但没什么好讲的。所以解决方法并没有写迭代分两类:泛型数组(List为例)和引用类型数组转换基本类型数组转换前置知识:泛型必须是引用类型,不能是基本类型文章目录引用类型数组转换泛型数组 to 引用类型数组引用类型数组 to 泛型数组基本类型数组转换泛型数组 to 基本类型数组基本类型数组 to...原创 2020-04-16 14:40:02 · 2651 阅读 · 0 评论 -
AQS排它锁的获取acquire、释放release详解
大量源码注释警告,请耐心阅读AQS实现了代码块的并发控制,通过内置的FIFO双向队列来完成线程的排队工作基于模板方法模式设计,因此子类只需对五个方法,进行部分重写4个try:{独占 | 共享} + {获取 | 释放} ; 1个独占判断 //2个独占式的获取、释放 同步状态protected boolean tryAcquire(int arg) protected b...原创 2020-04-11 00:05:48 · 865 阅读 · 0 评论 -
java的Unsafe类解析
Unsafe性质sun.misc.Unsafe,“后门”类,可以直接操控内存和线程的底层操作,应用于java.nio和并发包等实现Unsafe是final类,不能被继承-获取Unsafe实例的"唯一"正常手段:Unsafe unsafe = Unsafe.getUnsafe();因为有使用限制,看源码就知道了//构造器私有private Unsafe() {}@CallerS...原创 2020-04-08 00:09:47 · 233 阅读 · 0 评论 -
ConcurrentHashMap之transfer()扩容深入源码分析
引言:首先“打个广告”,对于sizeCtl变量,如果读者还认为取值-N 时代表有N-1个扩容线程(因为基本资料都是这么说的),建议先阅读我的另一篇文章:ConcurrentHashMap的sizeCtl含义纠正引言:看了很多资料,有说的好的,但感觉有些地方讲得不是很好,所以加入了自己的理解,写出了这篇博文,希望对各位有一点帮助。精华分析因为源码跟注释都很多,我先直接把精华的分析总结...原创 2020-04-07 17:53:35 · 1231 阅读 · 1 评论 -
ConcurrentHashMap的sizeCtl含义纠正
引言:本文基于JDK1.8版本,而且对ConcurrentHashMap有一定了解的人,本文并非科普该类的用法,而是针对sizeCtl的含义做出纠正科普文章推荐:深入浅出ConcurrentHashMap1.8sizeCtl定义及注释 /** * Table initialization and resizing control. When negative, the ...原创 2020-04-06 23:41:06 · 8866 阅读 · 13 评论 -
HashMap源码之resize()详解
首先说明本文并没有采取直接把源代码拷贝出来然后在这之上“翻译”或者写注释的形式。因为笔者认为源码还是要自己阅读,并辅以资料的形式会更容易理解,也会有更多收获。本文所述HashMap为 jdk1.8重点:if (newThr == 0)的原理因为笔者找到的资料相关的内容都不太全,希望能对大家有一点帮助。进入正文:四种扩容情况(oldCap、oldThr、newCap、newThr...原创 2020-03-29 17:08:51 · 921 阅读 · 0 评论