Это примечание к реализации для разработчиков JVM. Это не является частью публичной документации и не касается разработчиков, использующих java.lang.String
.
Но если вы хотите знать:
Представьте, что они написали:
static final boolean COMPACT_STRINGS = true;
Тогда было бы константой, что компилятор мог бы заменить его значениемtrue
везде, где COMPACT_STRINGS
использовалось (только в пакете java.lang
, потому что это переменная локальной области действия пакета)
Давая ему значение true
в статическом инициализаторе, компилятор не 'Я больше не знаю, что это константа, и весь код, который ее использует, должен искать фактическое значение, которое он имеет во время выполнения.
В этом случае это полезно, потому что JVM изменяет это значение во время выполнения (даже если это final
, JVM все еще может его изменить), как отмечается в примечании к реализации.