目录
  1. 1. names的内部形式
    1. 1.1. 二进制类和接口的name
    2. 1.2. unqualified names
names的内部形式

names的内部形式

二进制类和接口的name

  1. 由于历史原因,在class文件中的二进制文件名书写语法与java文件的二进制文件名语法不同。
  2. 在Java文件中,我们一般将类和接口的名字写作为com.example.Text,用"."来进行分隔。
  3. 在class文件中,我们则用com/example/Text这种形式,我们需要将".“替换为”/"。
  4. 在class文件格式的描述符中使用的内部形式中,对类Text名称的引用被用CONSTANT_Utf-8_info结构表示字符串com/example/Text来实现。

unqualified names

  1. 方法名,字段名,本地变量名,和形参都作为unqualified name被存储。
  2. 一个unqualified name必须包含至少一个unicode编码点,并且不能包含任何一个ASCII编码字符串(.;[/)。
  3. 方法名必须要有约束,如果有特殊的方法名(比如)将会抛出异常。
  4. 方法名必须不能包含ASCII字符<或者>。
  5. 一个字段名或者接口方法名可能会是或者,但是没有方法调用指令去引用方法,并且只有invokespecial指令可能会引用方法。
文章作者: rack-leen
文章链接: http://yoursite.com/2020/01/15/Java/jvm/class%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F/names%E7%9A%84%E5%86%85%E9%83%A8%E5%BD%A2%E5%BC%8F/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 rack-leen's blog
打赏
  • 微信
  • 支付宝

评论