В настоящее время я пытаюсь углубиться в спецификацию виртуальной машины Java. Я читал Внутри JVM-книги в Интернете, и есть одна запутанная абстракция, которую я не могу понять: Constant Pool. вот выдержка из книги:
Для каждого загружаемого типа виртуальная машина Java должна хранить постоянный пул. Постоянный пул - это упорядоченный набор констант, используемых типом, включая литералы (строковые, целочисленные и константы с плавающей запятой) и символические ссылки на типы, поля и методы. Записи в пуле констант ссылаются на индекс, подобно элементам массива. Поскольку он содержит символические ссылки на все типы, поля и методы, используемые типом, пул констант играет центральную роль в динамической компоновке программ Java
У меня есть несколько вопросов о вышеупомянутом и CP вообще:
- Доступен ли CP в файле
.class
для каждого типа? - Что означает автор "символическая ссылка"?
- Что такое цель Constant Pool, на простом английском языке?