Почему отдельные теги используются для строк, целых чисел, чисел с плавающей запятой и т. д. в пуле констант

В определении постоянного пула, согласно спецификации, почему требуется иметь CONSTANT_String, CONSTANT_Integer,... как отдельный и уникальный тег?

почему эти теги нельзя рассматривать как тег CONSTANT_Class, как и все другие классы?

Только потому, что это системные классы? но если это так, есть другие системные классы, кроме упомянутых.

читайте здесь: https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.4


person Ankush G    schedule 29.07.2016    source источник


Ответы (1)


Потому что это ценности, а не классы.

Тег CONSTANT_Class используется в структуре CONSTANT_Class_info «для представления класса или интерфейса», то есть класса, а не экземпляров класса.

Тег CONSTANT_String используется для представления строкового значения, например. "foo", а не класс String.

person Andy Turner    schedule 29.07.2016