
JVM
文章平均质量分 91
图灵的六月
这个作者很懒,什么都没留下…
展开
-
JVM方法区核心技术解析:从方法区到执行引擎
JVM方法区存储类元数据(类型/字段/方法信息)、运行时常量池及静态变量,HotSpot从永久代(JDK≤6)演进至元空间(JDK8+)以解决内存溢出与GC问题。对象实例化需经类加载、内存分配(指针碰撞/TLAB)、初始化(零值→构造器),内存布局包含对象头(Mark Word/Klass指针)、实例数据和对齐填充。访问定位采用直接指针(高效)或句柄(稳定)。直接内存提升I/O性能,执行引擎通过解释器+JIT编译器(热点代码探测)实现跨平台高效运行,含AOT编译趋势。原创 2025-05-15 16:53:55 · 1209 阅读 · 88 评论 -
JVM内存模型深度解剖:分代策略、元空间与GC调优实战
JVM内存模型核心解析:堆采用分代策略(新生代[Eden/Survivor]/老年代),通过-Xms/-Xmx控制容量,对象基于年龄阈值晋升。元空间(JDK8+)通过MetaspaceSize动态水位线触发Full GC,替代永久代。垃圾回收分Minor/Major/Full三级触发,TLAB无锁分配优化多线程性能。逃逸分析支持栈分配与同步消除,建议生产环境设置MaxMetaspaceSize防泄漏,参数调优保障系统稳定性。原创 2025-05-06 21:33:42 · 1750 阅读 · 101 评论 -
突破JVM边界:类加载三重门与栈帧的生存法则
JVM类加载子系统按"加载→验证→准备→解析→初始化"流程工作。加载器读取字节码,转为方法区数据并生成Class对象;验证阶段保障字节码合法;准备阶段初始化静态变量;解析阶段转换符号引用;初始化执行`<clinit>()`并确保线程安全。 采用双亲委派模型,分启动类加载器(核心库)、扩展类加载器(扩展目录)和应用类加载器(用户类路径)。 虚拟机栈线程私有,含局部变量表与操作数栈。动态链接通过常量池解析方法地址,虚方法表支持多态。返回地址保存调用上下文,栈空间由`-Xss`调整,局部变量默认线程安全原创 2025-04-28 19:53:29 · 1558 阅读 · 102 评论