Java知识点
文章平均质量分 62
个人理解Java知识点,个人笔记
酱酱熊
这个作者很懒,什么都没留下…
展开
-
基于ReentrantLock的AQS源码解析(一)
众所周知:ReentrantLock可以是公平的也可以是非公平的。所谓公平:就是先来的肯定比后来的先获取到锁。也就是不能插队。所谓非公平:就是说,后来的可以比先来的先获取到锁,也就是说可以插队。以公平为例子进行讲解。我们知道,ReentrantLock 使用起来就向上面那样。一个lock一个unlock即可。首先看lock方法:继续跟进去,最后可以看到,调用的是acquire(1):acquire方法:重点从这里才开始,上面的都是依次跟就行。首先进行了一个if判断。第一个方法:tryAcq原创 2022-07-09 10:23:33 · 210 阅读 · 0 评论 -
HashMap1.7 扩容产生环形链表
场景两个线程同时put,发现HashMap需要扩容。执行代码现场HashMap真正的resize是在transfer方法里面完成的。void transfer(Entry[] newTable, boolean rehash) { int newCapacity = newTable.length; for (Entry<K,V> e : table) { while(null != e) { Ent原创 2022-04-12 11:10:04 · 1496 阅读 · 0 评论 -
Volatile关键字
定义:当一个变量被定义成volatile之后,他将具备两种特性1.可见性2.禁止指令重排解释1:可见性这里的可见性指的是,当一个线程改变了这个变量的值,那么这个新值对于其他线程来说是可以立即得知的。这里有必要解释一下JVM的内存模型。如下图:当一个线程要对一个普通变量进行写操作,首先是先将改变量读到工作内存,然后在工作内存进行修改操作,然后再将新值回写到主内存中。好了,有了上面的前提,我们再来说一下volatile修饰的变量,如果变量被volatile修饰,那么一旦这个变量被修改了,其他线程原创 2021-10-05 19:41:28 · 32 阅读 · 0 评论 -
LongAdder重要方法逐行解读
LongAdderadd(long x)public void add(long x) { //as 表示cells的引用 //b 表示获取的base值 //v 表示期望值 //m 表示cells数组的长度 // a 表示当前线程命中的cell的单元格 Cell[] as; long b, v; int m; Cell a; //条件一: true -> 表示cells已经被初始化过,当前线程应该将数据写入到对应的cell中 //原创 2021-07-31 16:11:15 · 236 阅读 · 0 评论 -
ConcurrentHashMap源码逐行解读(1.7)
ConCurrentHashMap源码解读(jdk1.7)解读该源码最好先了解HashMap的源码ConcurrentHashMap()public ConcurrentHashMap() { this(DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR, DEFAULT_CONCURRENCY_LEVEL);}这个构造函数要看一下:ConcurrentHashMap(int initialCapacity,float loadFactor, i原创 2021-07-25 18:06:33 · 254 阅读 · 0 评论 -
HashMap重要方法逐行解读
HashMap源码解读put方法public V put(K key, V value) { return putVal(hash(key), key, value, false, true);}putVal方法final V putVal(int hash, K key, V value, boolean onlyIfAbsent,boolean evict) { Node<K,V>[] tab; Node<K,V> p; int n, i;//定义了一原创 2021-07-24 19:25:25 · 76 阅读 · 0 评论 -
java 锁升级
讲Java锁升级,首先讲一下Java对象的内存布局。首先Java new 一个对象,生成的对象包括三部分信息。对象头(Object Header)运行时元数据(Mark Word)hashcode值GC年龄偏向线程Id偏向时间错锁状态标志线程拥有的锁类型指针(Klass Word)数据长度(数组对象才有的)实例数据对齐填充因为对象的锁信息包含在对象头信息里面,所以在了解锁升级机制前最好了解一下对象的内存布局。对于对象来说,有这么4种锁状态: 无锁状态、偏向锁状原创 2021-06-04 22:07:12 · 271 阅读 · 0 评论