JVM:类文件结构
- 整个class文件以8位字节为单位的二进制流,本质上就是一张表,所有都以_info结尾
- 文件结构:
- 每个class文件都有四个字节的魔数0xCAFEBABE,第五第六字节是次版本,第七第八字节是主版本
- 常量池入口:类和接口、字段的名称和描述符、方法的名称和描述符
- 访问标志:类还是接口?等
- 类索引、父类索引、接口索引集合
- 字段表集合
- 方法表集合
- 属性表集合:class文件、字段表、方法表都可以携带自己的属性表集合
- class文件不会保存各个方法、字段的最终布局信息。当虚拟机运行时,需要从常量池获得对应的符号引用,再在类创建或运行时解析、翻译到具体的内存地址
- Code属性:接口或抽象类的方法就不具有Code属性,Code属性用于描述代码
- this关键字:虚拟机调用实例方法时自动传入此参数
- synchronized:由monitorenter和monitorexit两个关键字来支持,为了保证在方法异常完成时可以正确配对,编译器自动产生一个异常处理器,用来执行monitorexit

浙公网安备 33010602011771号