
Java
文章平均质量分 92
Y先僧
这个作者很懒,什么都没留下…
展开
-
Synchronized重量级锁优化之路
在日常过程中经常会遇到并发问题,一个代码块被多个线程持有和修改导致最终结果出现错误,我时候我们一般会想到锁住代码块来解决并发场景问题。 锁分很多种定义,如轻量级锁、自旋锁、偏向锁、重量级锁,在算法实现上又可分为乐观锁、悲观锁,今天我们主要来说说Synchronized,我们都知道synchronized是一个悲观锁,在SDK1.5他是重量级锁,但1.6以后对synchronized做了优化,其初始状态为无锁状态。 1、Synchronized优化后的加锁顺序 锁主要存在四种状态,依次是:无锁状态、偏向原创 2022-05-28 15:08:46 · 358 阅读 · 1 评论 -
Java集合-HashMap
1、HashMap 1.7与1.8区别 2、HashMap结构 JDK1.7采用的是数组+链表的形式,而JDK1.8采用的是数组+链表+红黑树在数组容量大于64且链表长度大于8的情况下会使用红黑树,当长度小于6后又将从红黑树转化为链表。 因为在链表的查询操作都是O(N)的时间复杂度,而且hashMap中查询操作也是占了很大比例的,如果当节点数量多,转换为红黑树结构,那么将会提高很大的效率,因为红黑树结构中,增删改查都是O(log n)。 HashMap一些关键常量: static fina.原创 2021-09-12 15:41:42 · 214 阅读 · 0 评论