《深入理解Java虚拟机》-类文件结构

java源文件经编译器编译后生成class文件,你可曾想过class文件都包含哪些信息。class文件包含虚拟机执行时所需的所有信息,其他语言只要能被编译成class文件,那就能被虚拟机加载进内存执行,比如Groovy程序可以被groovyc编译器编译成class文件。这也是Java虚拟机语言无关性的基石。

class文件结构图

class.png

常量池

常量主要包括类和接口全局限定名、方法名称、字面常量等。后面的字段表,方法表,属性表都会引用这里常量。

字段表

描述接口或类中声明的变量。包含作用域、可变性、并发可见性等信息。

方法表

描述方法信息。包含方法作用域等信息。方法的代码信息保存在属性表中。

属性表

包含一些属性信息,字段表和方法表都会引用这里的属性信息。比如代码信息会被方法表引用。

总结

class文件有着非常严格的格式,这里仅仅粗略地看下具体包含哪些信息。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容