类文件结构

语言无关性

类文件结构_第1张图片

                    JAVA虚拟机与Class文件关联,与具体的语言没关系。任何语言只要能编译成Class文件,就能在JAVA虚拟机上执行。


Class类文件结构

        魔数和Class文件的版本

                模数:标志这个Class文件是否能把JAVA虚拟机执行

                版本号:第5、6个字节次版本号,7、8字节主版本号

    常量池

            主要存放两大类常量

                    字面量

                            文本字符串,声明为final的变量等

                    符号常量

                            类和接口的全限命名

                            字段的名称和描述符

                            方法的名称和描述符

            常量池的每一个常量都是一张表

                    

类文件结构_第2张图片

        访问标志

                标识类或接口的信息

                

类文件结构_第3张图片

        类索引、父类索引与接口索引的集合

        字段表集合

                描述接口或类中定义的变量

        方法表集合


        属性表集合

                

类文件结构_第4张图片

字节码指令

        操作码+操作数

        解释器基本执行模型

类文件结构_第5张图片

        字节码和数据类型

                

类文件结构_第6张图片

        加载和存储指令

                用来在栈帧的局部变量表和操作数栈中传输数据

        运算指令

                用来对操作数栈的值进行运算

        类型转换指令

        对象创建和访问指令

        操作数栈管理指令

                比如出栈

        控制转移指令

        方法控制和返回指令

        异常处理指令

        同步指令

        

你可能感兴趣的:(类文件结构)