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

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

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

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

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

1 ответ

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

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

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

Другие вопросы по тегам