
JVM
文章平均质量分 93
null不是我干的
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
黑马JVM解析笔记(六):深入理解JVM类加载机制与运行时优化
开发者可以继承类并重写方法(强烈推荐只重写此方法,而不是覆盖破坏双亲委派的loadClass方法)来创建自定义的类加载器。自定义类加载器关键步骤继承。重写根据类名(name)定位并读取.class文件的二进制数据(byte[]可在此处进行解密、解压缩等处理。调用父类的方法(或)将字节数组转换为Class<?对象。如果找不到类,抛出。(可选) 在构造函数中指定父加载器(默认父加载器是系统类加载器)。尽量遵循双亲委派。只在findClass中实现自定义加载逻辑,让loadClass。原创 2025-06-29 13:39:35 · 967 阅读 · 0 评论 -
黑马JVM解析笔记(五):深入理解Java字节码执行机制
本文从字节码角度分析了Java中的i++操作、条件判断、循环控制和构造方法。通过字节码示例详解了i++和++i的区别,条件判断指令ifne的实现,while/do while/for三种循环的字节码结构及其等效性。特别指出x=x++导致结果为0的原因,并解释了构造方法中代码块和成员变量的合并逻辑,以及私有方法、实例方法和静态方法的不同调用指令invokespecial、invokevirtual和invokestatic。全文通过具体代码的字节码分析,揭示了Java语法背后的底层实现机制。原创 2025-06-27 21:28:23 · 927 阅读 · 0 评论 -
黑马JVM解析笔记(四):Javap图解指令流程,深入理解Java字节码执行机制
本文通过一个Java代码示例详细图解了JVM字节码的执行流程。案例展示了从变量初始化、加法运算到结果输出的完整过程,通过javap反编译解析了每步对应的字节码指令。重点分析了操作数栈与局部变量表的交互、常量池引用以及方法调用机制。文章揭示了编译期优化(如常量计算)、JVM栈式架构的工作原理,并深入解析了getstatic和invokevirtual等关键指令的执行细节。该案例有助于开发者理解Java代码到字节码的转换过程以及JVM的运行时工作机制,为性能优化和问题排查提供理论基础。原创 2025-06-26 21:20:29 · 939 阅读 · 0 评论 -
黑马JVM解析笔记(三):类加载器结构与字节指令,深度剖析.class文件,简单明了
JVM类文件结构解析摘要: Java类文件(.class)由严格规范的二进制结构组成,包含魔数、版本号、常量池、访问标志、类索引、字段表、方法表等核心部分。以HelloWorld程序为例,类文件开头"CA FE BA BE"为魔数标识,后续34版本号对应Java 8。常量池包含35个条目,存储类名、方法签名等符号引用。方法表显示两个方法(含默认构造器),通过Code属性存储字节码指令(如2A B7等操作码)及对应的行号表。类文件通过这种结构化设计,确保JVM能准确解析和执行Java程序。原创 2025-06-25 20:04:07 · 684 阅读 · 0 评论 -
黑马JVM解析笔记(二):垃圾回收
本文介绍了JVM垃圾回收的核心知识,包括对象回收判断机制(引用计数和可达性分析)、五种引用类型(强/软/弱/虚/终结器)以及三种回收算法(标记清除、标记整理、复制算法)。重点阐述了分代回收策略,详细解析新生代和老年代的对象分配与回收流程,并说明相关VM参数设置。最后介绍了G1垃圾回收器的原理、回收流程及关键调优参数。全文从基础概念到高级调优,系统性地讲解了JVM内存管理的核心机制和优化方法。原创 2025-06-25 11:58:33 · 960 阅读 · 0 评论 -
黑马JVM解析笔记(一):内存结构
摘要:本文详细解析了Java对象在JVM中的执行流程与内存结构。首先,对象通过ClassLoader加载到内存,并分布在方法区(类信息)、堆(对象实例)、虚拟机栈(方法调用)等区域。执行过程涉及解释器、即时编译器(JIT)和垃圾回收机制。重点分析了内存结构的核心组件:程序计数器(线程私有)、虚拟机栈(栈帧)、本地方法栈、堆(线程共享)以及方法区(类元数据与常量池)。此外,探讨了内存溢出场景(如栈帧过多、堆对象未回收)及诊断工具(jmap、jstack等)。最后,通过代码示例说明方法区的存储结构,包括常量池、原创 2025-06-22 13:55:36 · 934 阅读 · 0 评论