
JVM
文章平均质量分 91
csdn_tom_168
富如可求,虽执鞭之士,吾亦为之。如不可求,从吾所好。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JAVA 调试排错工具清单
本文整理了Java生态调试排错工具链,涵盖基础诊断、可视化分析、线上诊断和高级调试框架。基础工具包括jps、jstack、jmap等;可视化平台如VisualVM、JProfiler;线上利器包括Arthas、BTrace和Async-Profiler;高级框架如APM监控和混沌工程工具。文章还提供了典型问题的排查路线(如CPU 100%、内存泄漏)和环境适配建议,帮助开发者快速定位和解决Java应用问题。最后推荐了不同环境下的工具组合方案,实现高效诊断。原创 2025-06-11 13:35:41 · 861 阅读 · 0 评论 -
JVM类加载机制的全方位解析(基于JDK 8规范)
摘要:本文深入解析JDK8的JVM类加载机制,涵盖五阶段模型(加载、验证、准备、解析、初始化)的核心流程和双亲委派模型。重点介绍JDK8使用元空间替代永久代的变革,以及类数据共享优化技术。文章还提供监控工具使用指南、常见异常处理方案,并探讨自定义类加载器实现和Tomcat类加载体系等扩展应用场景。通过理解类加载机制,开发者能有效解决依赖冲突、实现性能优化和构建模块化系统。全文包含流程图和代码示例,是掌握Java生态核心技术的重要参考。原创 2025-06-11 11:49:23 · 689 阅读 · 0 评论 -
JVM类加载机制的全方位解析(基于JDK 21规范)
摘要:本文全方位解析JVM类加载机制,详细阐述了加载、验证、准备、解析、初始化五个核心阶段,重点分析了双亲委派模型及其突破场景(如SPI服务加载)。同时介绍了类加载监控手段和常见异常诊断方法,并探讨了模块化系统、动态CDS等前沿技术。通过架构图和代码示例展示了类加载器的实现原理,指出该机制在热部署、模块隔离等场景的关键作用,是深入理解JVM运行原理的重要基础。原创 2025-06-11 11:46:11 · 746 阅读 · 0 评论 -
JVM类加载机制的全方位解析(基于JDK 17规范)
摘要: JDK 17的JVM类加载机制分为加载、链接(验证、准备、解析)、初始化三个阶段,核心改进包括模块化路径优先加载和CDS加速启动。类加载器采用三层结构(Bootstrap、Platform、System)和双亲委派机制,但SPI、热部署等场景可破坏委派。JDK 17增强模块化隔离,优化元空间内存管理,并支持动态类加载。流程遵循加载→验证→准备→解析→初始化的顺序,最终生成Class对象供程序使用。原创 2025-06-11 11:39:18 · 358 阅读 · 0 评论 -
通过类字节码 了解JVM 运行机制
理解字节码机制不仅有助于排查等运行时异常,更能通过JVM参数调优(如打印汇编代码)实现性能突破。随着JDK 22类文件API的推出,开发者可直接操作字节码结构,为Java生态带来更多可能性。原创 2025-06-11 11:16:40 · 758 阅读 · 0 评论 -
Java对象头 详解
Java对象头是对象内存布局的核心部分,存储元数据和运行时状态。它包含Mark Word(哈希码、GC年龄、锁状态)、Klass Pointer(类型指针)和数组长度(可选)。对象头在内存中与实例数据、对齐填充共同构成完整布局。它直接参与锁机制实现(偏向锁、轻量级锁、重量级锁的状态转换),并可通过指针压缩和字段重排序优化内存使用。理解对象头机制对JVM调优和内存问题排查至关重要,通过工具可以查看其具体字节内容。原创 2025-06-11 10:54:49 · 496 阅读 · 0 评论 -
常见垃圾回收算法、垃圾回收器及 JVM 调优
【代码】常见垃圾回收算法、垃圾回收器及 JVM 调优。原创 2025-06-08 00:14:58 · 860 阅读 · 0 评论 -
JVM 内存模型(JMM, Java Memory Model)详解
JVM 内存模型(JMM)详解摘要 JMM是Java虚拟机定义的多线程内存访问规范,确保原子性、可见性和有序性。核心机制包括主内存(共享变量存储)和工作内存(线程私有副本),通过8种原子指令(如read/write)同步数据。关键特性: 原子性:基本类型读写、synchronized块; 可见性:volatile强制刷新内存,synchronized清空工作内存; 有序性:happens-before规则约束指令顺序。 JMM通过内存屏障适配不同硬件,解决CPU缓存一致性问题。实践建议:共享变量用volat原创 2025-06-08 00:13:12 · 471 阅读 · 0 评论 -
JDK8 JVM结构详细介绍 (一)(二)(三) (四)(五)
JDK8的JVM结构主要包括类加载子系统、运行时数据区、执行引擎和本地方法接口。相比之前版本,JDK8将方法区从永久代改为元空间,使用本地内存而非堆内存,解决了永久代常见的内存溢出问题。元空间与堆内存的关键区别在于:元空间存储类元数据,使用本地内存且默认无大小限制,而堆内存存储对象实例,由GC管理且大小可配置。这种改进提升了内存管理效率和稳定性,更好地适应现代应用需求。运行时数据区分为线程共享(方法区、堆)和线程私有(程序计数器、虚拟机栈、本地方法栈)区域,执行引擎包含解释器和JIT编译器,垃圾回收器负责内原创 2025-06-08 00:12:01 · 574 阅读 · 0 评论