Class字节码解析:理解ClassFile结构
Class文件格式
阅读class字节码文件
阅读“虚拟机汇编语言”表示的Java类
❤Class文件是JVM的输入,Java虚拟机规范中定义了Class文件的结构。Class文件是JVM实现平台无关、技术无关的基础
Class文件是一组以8字节为单位的字节流,各个数据项目按顺序紧凑排列
- Class文件格式里面只有两种类型:无符号数、表
(1)无符号数:基本数据类型,以u1、u2、u4、u8来代表几个字节的无符号数
(2)表:由多个无符号数和起其他表构成的复合数据类型,通常以“_info”结尾
Class文件格式
javap工具生成非正式的“虚拟机汇编语言”,格式如下:
挺难的!!!!!
阅读Class字节码:类定义和属性
阅读Class字节码:方法和方法调用
了解预定义attribute的含义
stack:方法执行时,操作栈的深度
Locals:局部变量所需的存储空间,单位是slot
slot是虚拟机为局部变量分配内存所使用的最小单位
args_size:参数个数,为1的话,因实例方法默认会传入this,locals也会预留一个slot来存放
(按照指令集顺序执行)
Class文件格式:重点是理解并能阅读字节码文件,以及用“虚拟机汇编语言”表示的Java类