为什么在常量池中对字符串、整数、浮点等使用单独的标记



在常量池定义中,根据规范,为什么需要具有constant_String、constant_Integer。。。作为单独和唯一的标签?

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

只是因为这些是系统类吗?但如果是这样的话,还有其他系统类。

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

因为它们是值,而不是类。

CONSTANT_Class标记在CONSTANT_Class_info结构中用于"表示类或接口",即类,而不是类的实例。

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

相关内容

  • 没有找到相关文章

最新更新