Каково назначение пула констант Java?

В настоящее время я пытаюсь глубже изучить спецификацию виртуальной машины Java. Я читал Внутри книги JVM онлайни нашел одну запутанную абстракцию, которую я не могу понять: Постоянный пул. вот выдержка из книги:

Для каждого загружаемого типа виртуальная машина Java должна хранить постоянный пул. Пул констант — это упорядоченный набор констант, используемых типом, включая литералы (строковые, целочисленные константы и константы с плавающей запятой) и символические ссылки на типы, поля и методы. На записи в пуле констант ссылаются по индексу, как и на элементы массива. Поскольку он содержит символические ссылки на все типы, поля и методы, используемые типом, пул констант играет центральную роль в динамической компоновке Java-программ

. У меня есть несколько вопросов по поводу вышеизложенного и CP в целом:

  1. Находится ли CP в файле .classдля каждого типа?
  2. Что автор подразумевает под «символической ссылкой»?
  3. Какова цель постоянного пула, говоря простым языком?

65
задан Seki 12 June 2015 в 08:48
поделиться