JVM 共 12 篇文章

JVM G1收集器的 Mixed GC 触发阈值与停顿预测模型
2026-05-22 06:19:21
JVM G1收集器的 Mixed GC 触发阈值与停顿预测模型 理解 G1 垃圾收集器的 Mixed GC(混合垃圾回收)何时发生以及如何预测其停顿时间,是精准调优 Java 应用的关键。Mixed GC 旨在高效回收老年代中那些大部分已无用的区域,同时严格遵守设定的最大停顿时间目标。其核心机制围绕
JVM G1收集器 MixedGC
12 0
Java OOM排查实战:堆转储文件分析与内存泄漏定位
2026-05-09 00:18:08
Java OOM排查实战:堆转储文件分析与内存泄漏定位 Java应用程序在生产环境中遭遇内存溢出OutOfMemoryError, OOM是常见问题。此类问题会导致应用崩溃或性能急剧下降。本文将指导你如何通过分析堆转储heap dump文件快速定位并解决Java内存泄漏问题。 第一阶段:堆转储文件生
JavaOOM 内存泄漏 堆转储
50 0
Java Class-Data Sharing加速JVM启动的预热优化
2026-05-01 13:23:04
Java ClassData Sharing(CDS,类数据共享)通过将一组类预处理为共享归档文件,让多个 JVM 进程可以共享这部分内存数据。这避免了每次启动时重复加载类、验证类和解析符号的开销,从而显著缩短应用启动时间并降低内存占用。以下分为“动态 CDS(推荐,JDK 13+)”和“静态 CD
Java JVM CDS
55 0
Java偏向锁撤销时的安全点停顿问题分析
2026-04-27 04:19:44
Java偏向锁撤销时的安全点停顿问题分析 Java偏向锁是为了在无竞争情况下减少获取锁性能损耗而引入的优化机制,它假设锁通常由同一线程多次获得。然而,一旦出现第二个线程尝试获取锁,偏向锁就必须撤销,这个过程并非瞬间完成,而是依赖于JVM的全局安全点,这会导致系统性能出现不可预测的停顿。 一、 理解偏
Java 偏向锁 安全点
49 0
Java 类加载器的命名空间隔离与ClassCastException
2026-04-24 04:13:37
Java 类加载器的命名空间隔离与ClassCastException 在 JVM 中,判断两个类是否相同,不仅看类的全限定名(包名+类名),还要看加载它们的类加载器是否相同。如果全限定名相同,但类加载器不同,JVM 会认为它们是两个完全不同的类。这种机制称为“类加载器的命名空间隔离”。理解这一机制
Java 类加载器 JVM
55 0
Java CMS垃圾收集器的浮动垃圾与Concurrent Mode Failure
2026-04-20 02:26:26
Java CMS垃圾收集器的浮动垃圾与Concurrent Mode Failure CMS(Concurrent Mark Sweep)收集器以获取最短回收停顿时间为目标,允许垃圾收集线程与用户线程并发执行。这种设计虽然降低了停顿时间,但也引入了“浮动垃圾”和“Concurrent Mode Fa
Java CMS 垃圾回收
62 0
Java 线程局部变量ThreadLocal内存泄漏分析
2026-04-14 17:26:50
Java 线程局部变量ThreadLocal内存泄漏分析 认识 ThreadLocal的基本概念。ThreadLocal是Java中提供的一种线程绑定机制,它能让每个线程拥有自己的变量副本,避免了多线程环境下的资源竞争问题。当你在一个线程中设置ThreadLocal变量时,这个变量只对该线程可见,其
Java ThreadLocal 内存泄漏
79 0
Java 堆外内存DirectBuffer的分配与回收
2026-04-14 06:18:01
Java 堆外内存 DirectBuffer 的分配与回收 Java 堆外内存(OffHeap Memory)是指直接在 JVM 堆之外分配的内存,主要由操作系统管理。使用 DirectBuffer(特别是 DirectByteBuffer)操作堆外内存,可以避免数据在 Java 堆和本地堆之间复制
Java 堆外内存 DirectBuffer
78 0
Java 类加载问题:ClassNotFoundException 类找不到
2026-04-11 19:27:58
Java 类加载问题:ClassNotFoundException 类找不到 ClassNotFoundException 是 Java 开发中最常见的异常之一,它表明 Java 虚拟机(JVM)在运行时试图通过其字符串名称加载类,但在类路径(Classpath)中找不到对应的类定义。解决这个问题通
Java 类加载 异常处理
78 0
Java 内存问题:OutOfMemoryError 内存溢出
2026-04-11 07:19:16
Java 内存问题:OutOfMemoryError 内存溢出 Java 应用程序在生产环境中最常见的崩溃原因之一就是 OutOfMemoryError(OOM)。这通常意味着应用程序试图使用的内存量超过了 Java 虚拟机(JVM)允许的范围,或者内存中存在无法回收的“垃圾”。解决这个问题不需要猜
Java 内存溢出 JVM
91 0
Java 性能问题:GC 频繁导致的性能下降
2026-04-06 03:55:03
Java 性能问题:GC 频繁导致的性能下降 一、GC 频繁的表现与判断方法 在生产环境中,如果你的 Java 应用出现以下现象,很可能是 GC 频繁导致的性能问题: 应用响应变慢:接口响应时间忽高忽低,特别在流量高峰时经常超时。 CPU 使用率异常:GC 线程会占用大量 CPU 资源,导致业务线程
Java性能优化 GC调优 JVM
71 0
Clojure REPL:交互式开发
2026-04-02 01:16:00
Clojure REPL:交互式开发 启动一个 Clojure REPL(ReadEvalPrint Loop),你就能立刻执行代码、查看结果、修改逻辑,而无需重新编译整个项目。这种“写一行、跑一行”的方式,让调试和探索变得极其高效。 准备工作:安装 Clojure 工具链 1. 访问 https:
Clojure REPL 交互式开发
65 0