Описание тега invokevirtual
2
ответа
Java asm получает объект "this" из переменных метода
Мне нужно знать имя объекта, который вызвал invokevirtual операцию (в следующем формате - Objectname@object_id). Возможно ли, учитывая только объект MethodInsnNode? Я знаю, что он хранится с индексом 0 в локальных переменных, но я не знаю, как его п…
03 сен '12 в 11:18
3
ответа
Операция байт-кода Java 'invokevirtual' не сохраняет согласованность для методов, унаследованных Object
У меня есть следующие коды. public class Parent { @Override public int hashCode() { return 0; } } public class Child extends Parent { public void test() { this.toString(); this.hashCode(); } } Как видно из приведенных выше кодов, Child наследует toS…
02 мар '13 в 08:04
2
ответа
InvokeExact для объекта, тип которого динамически загружается загрузчиком классов
Я потратил целый день на эту проблему. Моя проблема заключается в том, как сделать метод MethodHandle.invokeExact для экземпляра, тип класса которого динамически загружается во время выполнения программы. Чтобы сделать проблему более ясной, я показы…
14 фев '15 в 02:39
1
ответ
Есть ли причина для того, чтобы не вызывать виртуальную инструкцию и команду invokeinteface bytecode в одну?
Есть ли причина для создания инструкции для вызова нестатического неконструктивного метода в две отдельные команды вместо одной объединенной инструкции, например invokeinstance? Это имеет какое-то отношение к какому-то случайному внутреннему механиз…
30 янв '16 в 17:25
2
ответа
Попытка вызвать виртуальный метод 'android.view.View android.view.Window.findViewById(int)' для пустой ссылки на объект
По сути, это приложение должно запрашивать ваше имя, с возможностью сохранения, когда при щелчке появляется диалоговое окно с предупреждением и спрашивает: "Вы уверены?", Когда нажимается "да", оно должно содержать "добро + любое имя", Моя проблема …
18 авг '15 в 01:49
1
ответ
В финальных методах Java используется статическая привязка, но JVM при компиляции использует инструкцию invokevirtual
Во многих книгах говорилось, что конечные методы экземпляра java (не частные) используют статическое связывание, а другие методы экземпляра (не частные) используют динамическое связывание. Однако при компиляции они оба используют команду invokevirtu…
24 мар '17 в 04:53
0
ответов
Понимание работы invokevirtual с реальным файлом ijvm
Я пытаюсь реализовать инструкцию invokevirtual в c, и хотя я прочитал, как теоретически это работает, мне трудно понять, что происходит при чтении реального файла ijvm. В частности, пусть следующий файл ijvm: 1d ea df ad 00 01 00 00 00 00 00 04 00 0…
01 июн '19 в 17:44
1
ответ
Что делает # после invokevirtual
Например, если int-переменные a и b хранятся в локальных переменных 1 и 2, этот код будет вычислять this.f(3+b*a), (this-указатель хранится в переменной 0) iload_1 aload_0 icons_3 iload_1 iload_1 imul iadd invokevirtual #4 для чего #4 Стой здесь?
15 мар '19 в 19:20
2
ответа
Как JVM узнает, сколько значений нужно вставить в новый фрейм при вызове метода через invokevirtual?
Когда метод вызывается через invokevirtual, вызывающий метод извлекает значения для передачи вызываемому методу вместе со ссылкой на объект и помещает их в новый фрейм стека. Как узнать, какая запись в стеке является ссылкой на объект? Я предполагаю…
20 ноя '21 в 08:56
0
ответов
Байт-код Java: вызывает виртуальную ссылку на метод для ссылки на объект с другим классом
В настоящее время я изучаю, как работает байт-код Java. Я создал этот простой тестовый класс: class Main { public static void main(String[] args) { System.out.println("Hello, World!"); } } Сjavap -c Main.classЯ могу получить его байт-код: class Main…
15 дек '22 в 19:58