第一次使用缓存,因为没预热,翻车了
预热一般指缓存预热,一般用在高并发系统中,为了提升系统在高并发情况下的稳定性的一种手段。 缓存预热是指在系统启动之前或系统达到高峰期之前,通过预先将常用数据加载到缓存中,以提高缓存命中率和系统性能的过程。缓存预热的目的是尽可能地避免缓存击穿...
为什么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这种...
公开发表
公开发表,作品名称:Java面试宝典,作者:张洪亮,著作权人:张洪亮,登记号:鲁作登字-2023-L-00123943
并发编程的原子性 != 事务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文件即可...