标签: #JVM

JVM基础:内存结构与垃圾回收

本文详细介绍了JVM内存结构与垃圾回收机制。内存结构分为线程共享(堆区、方法区)和线程私有(程序计数器、JVM栈、本地方法栈)区域,其中堆存储对象,方法区存放类元信息(JDK8后移至元空间),直接内存用于NIO优化。垃圾回收基于可达性算法,通过GC Root(如线程对象、类加载器等)判断对象存活,并支持强、软、弱、虚、终结器五种引用类型。回收算法包括标记清除(存在碎片)、复制(高效但空间利用率低)、标记整理(无碎片但效率低)及分代GC(年轻代复制算法+老年代标记整理),主流垃圾回收器有Serial(单线程)、CMS(低延迟)、Parallel(高吞吐)和G1(平衡延迟与吞吐)。

JVM基础:字节码文件与类加载器

JVM是Java虚拟机的核心,负责解释执行字节码、管理内存(含自动GC)和通过JIT编译优化热点代码。其规范支持多种语言运行,常见实现包括HotSpot、GraalVM等。JVM由类加载器、运行时数据区、执行引擎和本地接口组成。字节码文件包含魔数、版本号、常量池等结构,可通过jclasslib、javap或Arthas工具查看。类生命周期包括加载、连接(验证、准备、解析)、初始化等阶段,类加载器采用双亲委派机制保证安全,也可通过自定义类加载器、线程上下文类加载器等方式打破。