深入学习Java虚拟机——类文件结构
Java源码由编译器编译为所有平台上的虚拟机都能统一使用的程序存储格式——字节码文件,即 .class文件,通过这种方式,Java语言具备了平台无关性的特点,Class类文件是一组以8位字节为基础单位的二进制流,各个数据项目按照顺序紧凑的排列在Class文件中,中间没有任何分隔符。 1. Class类文件的结构 1.Class类文件格式:只包含两种数据类型,无符号数和表。 2.无符号数:属于基本的数据类型,以u1,u2,u4,u8来分别表示1个,2个,4个,8个字节长度的无符号数,比如数字,索引引用,数量值或按照utf-8编码的字符串值。 3.表:有多个无符号数或者其他表构成的复合数据类型,以“_info”结尾,用于表示有层次关系的复合结构的数据。 4. Class类文件本身就是一张表,它由17个数据项构成:magic,minor_version,major_version,constant_pool_count,constant_pool,access_flags,this_class,super_class,interfaces_count,interfaces,f...