相关疑难解决方法(0)

为什么L是引用类型的前缀(而不是其他一些字母)?

为什么L选择类型签名中引用的前缀?是否L代表某种东西,如B代表byte,I代表int什么?或者它被选中是因为C已经分配给了char

例如,

System.out.println( new String[0].getClass().getName() );
Run Code Online (Sandbox Code Playgroud)

产量:

[Ljava.lang.String;
Run Code Online (Sandbox Code Playgroud)

我已经知道Java规范Class.getName方法 javadoc 中的解释.

java

9
推荐指数
1
解决办法
2770
查看次数

为什么“ a”是对象引用的Java字节码前缀?

特定于类型的Java字节码指令具有单字符前缀以指定该指令所涉及的类型。

在此处输入图片说明 摘自Wikipedia关于Java字节码的条目

在每种情况下,前缀选择都是有意义的,它由该类型的第一个字母组成(布尔型除外,布尔型没有指令前缀)。但是,对象引用前缀似乎不合逻辑,因为o和和r(两个第一字母)都是免费的。相反,对象引用指令a用作其前缀。

对象引用字节码指令为什么前缀a,而不是貌似更合适o还是r

java bytecode instructions

5
推荐指数
1
解决办法
251
查看次数

标签 统计

java ×2

bytecode ×1

instructions ×1