|
· this_class, super_class – индексы структур в области констант, ссылающихся на данный класс и его класс-предок;
· interfaces_count – число интерфейсов, реализуемых данным классом;
· interfaces – массив индексов структур в области констант, ссылающихся на интерфейсы, реализуемые данным классом;
· fields_count – количество полей в данном классе;
· fields – массив структур field_info, описывающих поля класса. Формат структуры field_info будет рассмотрен ниже;
· methods_count – количество методов;
· methods – массив структур method_info, описывающих методы класса. Формат структуры mettho_info будет рассмотрен ниже. Конструкторы и статические инициализаторы представляются методами со специальными именами <init> и <clinit>;
· attributes_count – количество атрибутов класса;
· attributes – массив структур-атрибутов класса (поля, методы и байт-код методов также могут иметь свои атрибуты). Каждая такая структура в начале имеет два обязательных поля, описывающих тип атрибута и его размер. К классу могут быть применены следующие стандартные атрибуты: SourceFile – указывает на файл исходного текста, из которого был получен данный файл класса, и Deprecated – класс оставлен для совместимости со старым кодом и его использование не рекомендуется. Возможно создание атрибутов нестандартных типов, но они будут игнорироваться средой выполнения.
Типы элементов Constant_pool
Каждый элемент сonstant_pool начинается с однобайтного поля, определяющего его тип. Размер и содержание остальной части структуры зависит от типа. Существуют следующие типы констант (элементов constant_pool):
· CONSTANT_Class – указывает на класс. Содержит индекс константы типа CONSTANT_Utf8, хранящей дескриптор класса;
· CONSTANT _Fieldref – указывает на поле класса. Содержит индексы констант типа CONSTANT_Class и CONSTANT_NameAndType;
· CONSTANT _Methodref указывает на метод класса (не интерфейса). Содержит индексы констант типа CONSTANT_Class и CONSTANT_NameAndType;
· CONSTANT _InterfaceMethodref указывает на метод интерфейса. Содержит индексы констант типа CONSTANT_Class и CONSTANT_NameAndType;
· CONSTANT_String – указывает на строку, содержит индекс константы типа CONSTANT_Utf8;
· CONSTANT_Integer – содержит целое 32-разрядное число;
· CONSTANT_Float – содержит вещественное число одинарной точности;
При использовании материалов активная ссылка на источник обязательна.