首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
JVM
敖正炀
创建于2025-03-30
订阅专栏
JVM相关的知识
等 1 人订阅
共24篇文章
创建于2025-03-30
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
类加载初始化时机-主动引用与被动引用
在JVM类加载机制中,初始化阶段是执行类构造器 <clinit>() 方法的过程,只有当一个类被主动引用时,才会触发其初始化。相反,被动引用则不会导致类的初始化。
JVM堆内存参数与调优
JVM调优的核心之一是对堆内存的合理配置。堆是Java对象存活的主要区域,其大小、分代比例、晋升阈值等参数直接影响垃圾收集的频率、停顿时间和整体吞吐量。
跨代引用-解决办法
跨代引用是分代垃圾收集中必须高效解决的关键问题。下面通过一个具体例子,详细说明 卡表(Card Table) 如何作为记忆集的实现,结合写屏障来解决老年代到年轻代的跨代引用问题。
JVM堆分代设计
从假说到实践的深度剖析 JVM的垃圾收集(GC)是现代自动内存管理的巅峰之作,而分代理论是贯穿其设计的核心思想。
打破双亲委派模型
打破双亲委派模型通过重写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支持多态、动态绑定和灵活类加载机制的关键技术。
下一页