源代码中固定值的表示形式,如数字1是一个字面量,字符串也是一个字面量;在Java中,有整数文字、浮点数字文字、布尔文字、字符文字和字符串文字。
不带类型和参数装饰的方法或字段名称
在上面的代码中,inc是方法的简单名称,m是字段的简单名称。
完全限定名替换“。”用“/”表示类的全名,例如“com/joy/learn/core/oop/method/testclass”
参考jvm的官方文档
1)描述字段的数据类型
Array:每个维度前面都有一个[例如:String[][]->[[ljava/lang/object,int[]->[i
2)描述方法的参数列表和返回值
按先有参数列表后有返回值的顺序描述。参数列表按参数顺序放在()中。Void inc()->()V String toString()->()ljava/lang/String;Int indexof(char[]source,Int sourceOffset,Int sourceCount)->([CII)I
符号引用使用一组符号来描述被引用的目标。符号可以是任何形式的文字,只要它们能明确地定位目标。例如,在类文件中,它显示为CONSTANT_Class_info、CONSTANT_Fieldref_info、CONSTANT_Methodref_info等类型的常量。符号引用与虚拟机的内存布局无关,引用的目标不必加载到内存中
中等。
在Java中,一个Java类将被编译成一个类文件。在编译时,java类不知道被引用类的实际地址,因此只能使用符号引用代替。例如,如果一个类引用了一个类,People类在编译时并不知道语言类的实际内存地址,因此只能使用符号(假设是这样,当然实际上是用像CONSTANT_Class_info这样的常量表示)来表示语言类的地址。