为什么单独的标签用于常量池中的字符串,整数,浮点等

时间:2016-07-29 08:54:36

标签: java string jvm-bytecode

在常量池定义中,根据规范,为什么需要将CONSTANT_String,CONSTANT_Integer,...作为单独且唯一的标记?

为什么不能像所有其他类一样将这些标记视为CONSTANT_Class标记?

是否仅仅因为这些是系统类?但如果是这样,除了提到之外还有其他系统类。

请在此处阅读:https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.4

1 个答案:

答案 0 :(得分:2)

因为它们是价值观,而不是阶级。

#start from first folder node $xmlDoc.SelectSingleNode('//folder') #start from first folder node with root attribute $xmlDoc.SelectSingleNode('//folder[@type="root"]') 标记在CONSTANT_Class_info结构"中用于表示类或接口",即类,而不是类的实例。

CONSTANT_Class标记用于表示字符串值,例如CONSTANT_String,而不是"foo"类。