2014-01-23 9 views
1

Я ловил около invokedynamic и MethodHandles информация недавно.Как методы бутстрапа регистрируются в постоянном пуле в Java?

Кажется, что ОБА Linkage.registerBootstrapMethod() и @BootstrapMethod устарели как средство маркировки методов начальной загрузки.

Как они зарегистрированы в постоянном пуле?

ответ

3

Начиная с Java 8, для регистрации методов бутстрапа нет поддержки на уровне языка Java. Методы Bootstrap регистрируются эмиттером байт-кода (компилятор источника-байт-кода, байт-код-трансформатор, контрольно-измерительный агент и т. Д.) В файле BootstrapMethods attribute в файлах классов, из которых они используются значениями CONSTANT_InvokeDynamic_info в пуле констант, которые в свою очередь, ссылаются на invokedynamic инструкции.

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