文章列表

Redis 锁是并发安全的吗?怎么保证不被抢夺?

本文深度解析Redis分布式锁的并发安全问题及防护机制。从原子性加锁(SET NX)、唯一标识防误删、看门狗自动续期到Redlock算法应对主从切换,详解如何层层加固确保锁不被意外抢夺,并对比ZK锁的选型取舍,助你掌握生产级分布式锁实践。

Spring Boot Controller 层怎么实现并发安全的?

本文深入解析Spring Boot Controller层实现并发安全的原理与实践。从Controller默认单例特性出发,剖析多线程下成员变量引发的安全问题,详解无状态设计、ThreadLocal、请求作用域Bean等解决方案,并对比优劣与常见误区,助你写出高并发下的安全代码。

运行时常量池和字符串常量池的关系是什么?

本文深度解析运行时常量池与字符串常量池的关系与区别。从存储位置(元空间 vs 堆)、存储内容、生命周期到类加载过程中的交互机制,详解字符串字面量的解析过程及intern()方法的底层原理,助你彻底理清这两个JVM核心概念。

JVM 类加载器如何保证核心类库不被覆盖?

本文深入解析Java类加载器如何通过双亲委派模型保证核心类库不被覆盖。详解类加载器层次、双亲委派工作流程、源码实现,以及如果没有该机制可能引发的类型混乱与安全风险。助你理解JVM类加载安全基石与面试高频考点。

线上 Full GC 频繁,如何排查解决?

本文系统讲解线上Full GC频繁的排查与解决方案。从确认现象、分析GC日志、获取堆转储、使用MAT分析内存泄漏,到定位代码问题与制定优化方案,提供完整的实战排查路径,助你快速定位并解决GC性能瓶颈。

Spring 第一次启动执行慢,从 JVM 角度讲讲?

本文从JVM角度深度解析Spring第一次启动慢的根本原因,涵盖海量类加载与验证、解释执行与JIT预热、密集对象创建引发GC频繁、反射与动态代理开销等核心维度,并提供类加载加速、JIT调优、GC优化及CDS等实践建议,助你根治冷启动性能瓶颈。

JVM 对 Synchronized 关键字的实现是怎样的?

本文深度解析JVM对synchronized关键字的底层实现,从对象头(Mark Word)与Monitor机制出发,详解锁的四种状态(无锁/偏向锁/轻量级锁/重量级锁)的升级过程,以及字节码指令、锁消除、锁粗化等优化策略,助你透彻理解Java并发同步的核心。

满足什么条件时,一个 Java 类会被卸载?

本文深度解析Java类被卸载的三大条件:类的所有实例被回收、加载该类的ClassLoader被回收、Class对象无引用。详解原理、代码示例及热部署场景下的类泄漏问题,助你掌握JVM类生命周期与元空间内存管理。

CMS 的底层原理是什么?优势在哪?

本文深度解析CMS垃圾回收器的底层原理,详细拆解初始标记、并发标记、重新标记、并发清除等六大工作步骤,分析其低延迟优势及对CPU敏感、浮动垃圾、内存碎片等劣势,并探讨CMS在JDK版本中的演进与替代方案。

CMS 和 G1 垃圾回收器的区别是什么?

本文深度解析CMS和G1垃圾回收器的核心区别。从堆内存布局、回收算法(标记-清除 vs 标记-整理)、停顿模型、并发机制到适用场景全面对比,并剖析CMS的碎片化问题与G1的可预测停顿优势,助你掌握JVM低延迟回收器选型与调优要点。