class类文件的结构
java的class类文件中存在两种结构:无符号数和表。最小的存储单元是8个字节。
无符号数是基本的数据类型,用来描述数字,UTF-8编码的字符串,索引引用。
表示多个无符号数构成的复杂数据结构。
其中:
- magic 表示魔数,并且魔数占用了4个字节,魔数到底是做什么的呢?它其实就是表示一下这个文件的类型是一个Class文件,而不是一张JPG图片,或者AVI的电影。而Class文件对应的魔数是0xCAFEBABE.
- minor_version 表示Class文件的次版本号。
- major_version 表示Class文件的主版本号。
- constant_pool 常量池 主要存储字面量和符号引用。其中字面量包含static字符串,static final常量等。符号引用包含类或者接口的全限定名、字段和方法的名称和描述符等。
还有各种描述类的信息,如:实现的接口列表,超类,方法列表,属性列表等。
一定程度上说,class文件中存储的信息在被加载后,大部分都是存放在方法区的。
时间: 2024-10-01 04:33:29