В настоящее время я пытаюсь углубиться в спецификацию виртуальной машины Java. Я читал Inside the JVM book online, и есть одна запутанная абстракция, которую я не могу понять: Constant Pool. вот выдержка из книги:Какова цель Java Constant Pool?
Для каждого типа, который он загружает, виртуальная машина Java должна хранить постоянный пул. Постоянный пул - это упорядоченный набор констант, используемых типом, включая литералы (строковые, целочисленные и константы с плавающей запятой) и символические ссылки на типы, поля и методы. Записи в пуле констант ссылаются на индекс, подобно элементам массива. Поскольку он содержит символические ссылки на все типы, поля и методы, используемые типом, постоянный пул играет центральную роль в динамической компоновке программ Java.
У меня есть несколько вопросов об упомянутых выше и CP в целом:
- Есть ли CP, расположенный в
.class
файлах для каждого типа? - Что означает автор «символическая ссылка»?
- Какова цель постоянного пула, на простом английском языке?
«Когда компилируется класс Java ...»? Не является ли файл .class уже скомпилированным кодом Java? –
Да, файл .java становится компилированным файлом .class. –
ссылка не работает –