为什么JDK 15要废弃偏向锁?
在JDK 1.7中,引入了偏向锁的概念来优化synchronized的性能,但是偏向锁,在JDK 15中已经被废弃了。 那么,为什么呢?(https://openjdk.org/jeps/374 ) JDK 15决定废弃偏向锁的主要原因是:...
InnoDB为什么不用跳表,Redis为什么不用B+树?
Innodb是MySQL的执行引擎,MySQL是一种关系型数据库,而Redis是一种非关系型数据库。这两者之间比较大的区别是:关系型数据库以表的形式进行存储数据,而非关系型数据库以Key-value的形式存储数据。 在InnoDB中,索引是...
解决幂等问题,只需要记住这个口诀
作为开发人员,我们每天都要开发大量的接口,其中包括了读接口和写接口,而对于写接口来说,除了要保证他的性能、可用性以外,还需要有一个重要的问题,那就是考虑如何保证接口的幂等性。 幂等性 什么是幂等性? 幂等(idempotent、idempo...
CMS和G1改用三色标记法,可达性分析到底做错了什么?
我们都知道, 当JVM判断对象不再存活的时候,便会在下一次GC时候将该对象回收掉,为堆腾出空间,而JVM判断对象存活的算法大家比较熟知的有两种,分别是引用计数法和可达性分析算法 引用计数法:给对象中添加一个引用计数器,每当有一个地方引用它,...
CAS确定完全不需要锁吗?
CAS大家都知道,这是一项乐观锁技术,是Compare And Swap的简称,顾名思义就是先比较再替换。 虽然他叫乐观锁,但是我们都知道它是不需要加锁的,在JDK1.5 中的JUC就是建立在CAS之上的。相对于synchronized这种...
并发编程的原子性 != 事务ACID的原子性
关于原子性,很多人在多个地方都听说过,大家也都背的很熟悉。 在事务的ACID中,有原子性的概念,在并发编程的原子性、可见性、有序性中也有原子性的概念。 有人认为他们是一样的,甚至很多人在说原子性的时候也都是这么说的: 原子性是指事务是一个不...
Innodb的RR到底有没有解决幻读?
关于Innodb中的REPEATABLE READ这种隔离级别到底有没有解决幻读?好像众说纷纭,大家的说法都不一致。 有的人说,RR当然没解决幻读了,因为只有Serializable才能解决幻读。 也有人说,RR解决了幻读,因为RR中加了间...
Spring Cloud 2022发布,这几个组件要移除了!
继SpringBoot 3.0和SpringFramework 6.0之后,Spring Cloud 终于也推出了新版本——2022.0.0,官网把这个版本命名为Kilburn。 目前在Maven仓库中已经可以下载使用了,通过BOM文件即可...
MySQL遵循最左前缀匹配原则,面试官:回去等通知吧
我们都知道,MySQL的Innodb引擎中,索引是通过B+树来实现的。不管是普通索引还是联合索引,都需要构造一个B+树的索引结构。 那么,我们都知道普通索引的存储结构中在B+树的每个非节点上记录的索引的值,而这棵B+树的叶子节点上记录的是聚...
SpringBoot 3.0正式发布,有这几个新变化!
最近几天,Spring有了重大更新,而且更新的很频繁,相继推出了Spring Framework 6.0和SpringBoot 3.0。 Spring把这次升级称之为新一代框架的开始,下一个10年的新开端,口号喊的挺响亮,但是很多人在看过相...