2013-05-30 6 views
0

Я изучал формат файла java-класса. Я специально изучал создание классов из байт-кода. Я смог найти большую часть информации, которая мне нужна из документации оракула, и других поисковых запросов Google. Однако мне не удалось выяснить, как и где конструкторы хранятся в файле класса. Я думал, что они могут быть сохранены в таблице методов, но я не уверен, и если они есть, мне бы хотелось узнать, как они хранятся.Где хранятся конструкторы в формате файла классов

ответ

5

От JVM specification, section 2.9:

На уровне виртуальной машины Java, каждый конструктор, написанный на языке программирования Java (JLS §8.8) выступает как метод инициализации экземпляра, который имеет специальное название <init>. Это имя предоставляется компилятором. Поскольку имя <init> не является допустимым идентификатором, его нельзя использовать непосредственно в программе, написанной на языке программирования Java.

Дополнительно:

класс или интерфейс имеет не более одного метода инициализации класса или интерфейса и инициализируется (§5.5) путем вызова этого метода. Метод инициализации класса или интерфейса имеет специальное имя <clinit>, не принимает аргументов и недействителен (п. 4.3.3).

+0

спасибо, статичен или нет – Popgalop

Смежные вопросы