首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
JVM
敖正炀
创建于2025-03-30
订阅专栏
JVM相关的知识
等 1 人订阅
共20篇文章
创建于2025-03-30
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
打破双亲委派模型
打破双亲委派模型通过重写loadClass()、线程上下文类加载器及OSGi机制实现类隔离、SPI驱动加载与模块化,应用于Tomcat、JDBC和热部署场景,解决核心类访问与动态加载需求。
类加载过程
JVM类加载机制通过加载、验证、准备、解析、初始化五个阶段将字节码转换为Class对象,基于双亲委派保障核心类安全,支持自定义类加载器实现热部署与模块化需求。
类加载时机
JVM类加载时机由主动引用触发初始化(如实例化对象、访问静态变量或反射),而被动引用(如常量、数组定义等)不会触发,实现按需延迟加载以优化资源使用。
JVM类加载机制
JVM类加载机制通过加载、验证、准备、解析、初始化五阶段将.class文件转换为Class对象,基于双亲委派模型保障核心类安全,支持自定义类加载器实现热部署、模块化等场景。
JVM类文件结构
JVM类文件结构是Java实现平台无关性的基石,其严谨的二进制格式确保JVM能够正确加载和执行类。JVM类文件结构是Java实现平台无关性的基石,其严谨的二进制格式确保JVM能够正确加载和执行类。
JVM 常见异常问题排查
JVM 异常问题排查是Java开发中必备的技能,常见问题包括 内存溢出(OOM) 、高CPU使用率、死锁、频繁GC、类加载异常 等。
JVM字节码详解
JVM字节码是Java源代码编译后生成的中间指令集,由JVM解释或即时编译(JIT)执行。理解字节码对于性能优化、调试和动态代码生成(如ASM、Javassist)至关重要。
JVM常见工具
以下是 JVM 监控与故障处理常用工具及命令的详细说明,涵盖 命令行工具 和 图形化工具,帮助快速定位内存泄漏、高 CPU、死锁等问题
G1(Garbage-First)垃圾收集器
G1垃圾收集器通过Region分区和混合回收机制,平衡吞吐与延迟,支持大堆内存。利用SATB算法和记忆集减少停顿,适用延迟敏感场景。调优可控停顿,但需注意内存占用与Full GC风险。
三色标记算法
三色标记算法通过白、灰、黑三色标识对象可达性,解决并发标记中因引用修改导致的漏标问题。采用增量更新(CMS)或原始快照(G1)策略,结合写屏障维护标记准确性,确保现代回收器高效管理内存
垃圾回收算法介绍
包括标记-清除(碎片多)、复制(高效但耗空间)、标记-整理(碎片少)。分代理论将堆分为年轻代(复制算法)和老年代(标记清除/整理)。现代回收器如CMS(低延迟)、G1(平衡)、ZGC(亚毫秒停顿)
JVM对象已死-可达性分析
JVM通过可达性分析算法判断对象存活:从GC Roots(如栈局部变量、静态属性)出发遍历引用链。不可达对象根据引用类型(强、软、弱、虚)及`finalize()`复活机制判定回收,确保内存高效利用
JVM分代收集理论
JVM的分代收集理论基于一个核心观察:绝大多数对象的生命周期极短,而少数对象则会存活较长时间。为了高效管理内存,JVM将堆内存划分为不同代(Generation),并针对各代特点采用不同的垃圾回收策略
HotSpot虚拟机对象详解
HotSpot虚拟机对象创建需经类加载、内存分配(指针碰撞/空闲列表)、初始化及构造方法;内存布局包含对象头(Mark Word、类型指针)、实例数据与对齐填充;访问采用直接指针,优化性能。
动态链接(Dynamic Linking)详解
动态链接是JVM栈帧的核心组成部分之一,负责在方法调用过程中将符号引用转换为直接引用,它是Java支持多态、动态绑定和灵活类加载机制的关键技术。
JVM直接内存(Direct Memory)详解
直接内存)是Java中一种堆外内存,由Java程序通过NIO的ByteBuffer或Unsafe类直接分配和管理。它不受JVM堆限制,直接由操作系统管理,是高性能I/O操作和内存敏感型应用的关键技术
JVM虚拟机栈详解
虚拟机栈是线程私有的内存区域,用于支持Java方法的执行。每个线程在创建时都会分配一个独立的虚拟机栈,其生命周期与线程相同。每个方法的执行就是栈帧(Stack Frame)的入栈与入栈
JVM方法区结构及工作原理详解
JVM方法区(Method Area)是运行时数据区的核心组成部分,用于存储类元数据、常量、静态变量、即时编译器编译后的代码等数据。它是所有线程共享的内存区域,与堆类似,但专注于存储与类相关的信息。
Java堆结构及工作原理详解
Java堆(Heap)是JVM中最大的一块内存区域,所有对象实例和数组都在堆中分配内存。它是Java内存管理的核心,也是垃圾回收(GC)的主要区域。以下从结构、工作原理、垃圾回收机制及优化等方面详细解
运行时内存区域概述
JVM(Java Virtual Machine)运行时数据区域是Java程序运行时的内存管理核心,分为线程共享和线程私有两部分。