JVM常量池索引值必须大于0才有效,这是为什么?

时间:2018-05-20 13:37:58

标签: java

JVM常量池索引值必须大于0才有效,这是为什么?这种设计有哪些优点或独特性?

1 个答案:

答案 0 :(得分:1)

constant_pool索引值零保留用于其他目的。例如,在ClassInfo结构中:

  

super_class:对于一个类,super_class项的值必须为零或必须是constant_pool表的有效索引。

我猜他们认为最好用零代表"没有价值"比起(比如)65535.最初的决定是在很久以前做出的。在Java被称为Java之前。

  

这种设计有哪些优点或独特性?

你需要为" no value"选择某些一些索引值。案例,它只有两个逻辑选择......