JVM中篇:字节码与类的加载篇
Java 字节码(英语:Java bytecode)是Java虚拟机执行的一种指令格式。
一个Java程序员并不需要理解所有的Java字节码。但是,就像IBM developerWorks周刊建议的那样:“理解字节码以及理解Java编译器如何生成Java字节码与学习汇编知识对于C/C++程序员有一样的意义。”
本部分的内容如下:
📄️ 1. Class文件结构
本文在整理时参考了以下几位大佬的笔记:
📄️ 2. 字节码指令集与解析举例
本文对JVM中的字节码指令做了详细的介绍,包括加载与存储指令、算数指令、对象创建与访问指令、方法调用与返回指令、操作数栈管理指令、控制转义指令等。
📄️ 3. 类的加载过程详解
本文介绍了 Java 类加载过程的七个阶段,包括从 Class 文件到加载到内存中的类,到类卸载出内存位置,以及验证、准备、解析、创建、构造、初始化、反射等操作。还解释了类模型、类模板、类实例、类字段、类方法等概念,以及数组类的加载过程。
📄️ 4. 再谈类的加载器
类加载器是 JVM 执行类加载机制的前提1. 它负责将 Class 信息的二进制数据流读入 JVM 内部,转换为与目标类对应的 java.lang.Class 对象实例,然后交给 Java 虚拟机进行链接、初始化等操作。ClassLoader 在整个装载阶段只影响类的加载,无法改变类的链接和初始化行为。至于类是否可以运行,由 Execution Engine 决定
📄️ 附:JVM指令手册
尚硅谷Java研究院
相关资料
本部分对应虚拟机规范中的: