¶names的内部形式
¶二进制类和接口的name
- 由于历史原因,在class文件中的二进制文件名书写语法与java文件的二进制文件名语法不同。
- 在Java文件中,我们一般将类和接口的名字写作为com.example.Text,用"."来进行分隔。
- 在class文件中,我们则用com/example/Text这种形式,我们需要将".“替换为”/"。
- 在class文件格式的描述符中使用的内部形式中,对类Text名称的引用被用CONSTANT_Utf-8_info结构表示字符串com/example/Text来实现。
¶unqualified names
- 方法名,字段名,本地变量名,和形参都作为unqualified name被存储。
- 一个unqualified name必须包含至少一个unicode编码点,并且不能包含任何一个ASCII编码字符串(.;[/)。
- 方法名必须要有约束,如果有特殊的方法名(比如
和 )将会抛出异常。 - 方法名必须不能包含ASCII字符<或者>。
- 一个字段名或者接口方法名可能会是
或者 ,但是没有方法调用指令去引用 方法,并且只有invokespecial指令可能会引用 方法。