Вопросы по теме 'jvm-bytecode'
Как работает bipush в JVM?
Я понимаю, что iload принимает целые числа от -1 до 5, но как вы можете расширить их до более высоких чисел с помощью инструкции bipush? Как конкретное целое число сохраняется с байт-кодом?
4087 просмотров
schedule
15.10.2021
Как собрать данные об использовании константных выражений с помощью анализа байт-кода?
Класс A объявляет константу C следующим образом:
public class A {
public static final int C = 10;
}
Эта константа используется в методе M класса B следующим образом:
public class B {
public int M() {
return A.C;...
45 просмотров
schedule
23.09.2021
Инструмент для чтения и отображения версий Java .class
Кто-нибудь из вас знает инструмент, который будет искать файлы .class и затем отображать их скомпилированные версии?
Я знаю, что вы можете просматривать их по отдельности в шестнадцатеричном редакторе, но у меня есть много файлов классов, которые...
62135 просмотров
schedule
25.02.2022
Как получить, где объект инициализируется с помощью ASM?
У меня есть определенный класс, о котором я хочу позаботиться.
public class TargetClass {
public TargetClass() { /* .. */ }
}
В моем большом проекте у меня есть несколько мест, где я создаю новый экземпляр этого класса.
public class A...
213 просмотров
schedule
07.05.2022
Почему отдельные теги используются для строк, целых чисел, чисел с плавающей запятой и т. д. в пуле констант
В определении постоянного пула, согласно спецификации, почему требуется иметь CONSTANT_String, CONSTANT_Integer,... как отдельный и уникальный тег?
почему эти теги нельзя рассматривать как тег CONSTANT_Class, как и все другие классы?
Только...
47 просмотров
schedule
29.06.2022
Удаление постоянного пула Java во время выполнения
У меня есть следующий класс Java:
public class Test {
public static void main(String[] args) {
if (false) {
log("String_to_be_never_printed_1");
}
if (isPrintable()) {...
240 просмотров
schedule
01.08.2022
Байт-код Java - одна метка для каждого оператора
Компилятор javac добавляет метку номера строки к каждой инструкции, которая соответствует новой строке в исходном коде. Как следствие, когда в одной строке перечислены несколько операторов, все они попадают под одну и ту же метку строки ( L1 в...
816 просмотров
schedule
06.09.2022
Как сгенерировать байт-код для оператора if-else
как сгенерировать код, соответствующий инструкции байт-кода IF THEN - ELSE с опциональной веткой ELSE?
Например, программа If-else.pas считается правильной, а программа If.pas не считается правильной, так как не содержит ветки ELSE....
2001 просмотров
schedule
11.09.2023
Какие проблемы может вызвать отключение проверки байт-кода Java?
В этом ответе говорится, что проверка используется для обеспечения того, чтобы байт-код Java "соответствовал правилам языка Java для обеспечения безопасности".
Если бы эта проверка не была выполнена, запуск небезопасного байт-кода был бы...
1748 просмотров
schedule
28.05.2023
Встроенное свойство расширения Kotlin
Я знаю, что ключевое слово inline позволяет избежать накладных расходов на вызов функции. Но я не могу понять, для чего работает встроенное свойство расширения?
Допустим, у нас есть два свойства расширения с именем foo и еще одно свойство с...
2594 просмотров
schedule
24.03.2023
Как изменить постоянный пул с помощью ASM?
Я уже понимаю, как манипулировать классом во время выполнения с помощью ASM из этот пост .
Но у меня есть еще вопрос о том, как изменить постоянный пул. Ниже приведен пример программы Java, которую я хочу изменить.
Основной JAR-файл:...
1385 просмотров
schedule
22.11.2022
Является ли байт-код Java всегда совместимым с пересылкой?
Я понимаю, что байт-код, сгенерированный версией JDK X, гарантированно будет работать на JVM Y при условии, что Y >= X.
Подходит ли это для всех версий JDK/JVM? i.e Справедливо ли ожидать, что файлы классов, сгенерированные JDK 1, будут работать...
1598 просмотров
schedule
16.10.2022
ASM - странный индекс localVar с использованием newLocal из LocalVariableSorter
Я добавляю новых местных жителей через newLocal из LocalVariableSorter . Метод, к которому я добавляю локальные переменные, является методом экземпляра с длинным параметром. Я добавляю двух местных жителей; один длинный, один объект. В примере...
251 просмотров
schedule
22.02.2023
Байт-код конструктора
В руководстве по ASM рассказывается о конструкторах:
package pkg;
public class Bean {
private int f;
public int getF() {
return this.f;
}
public void setF(int f) {
this.f = f;
}
}
Класс Bean также имеет...
1774 просмотров
schedule
09.11.2022
Модификация байт-кода Java с использованием ASM выдает ClassFormatError: Invalid length XXX in LocalVariableTable
Я использую ASM (также дерево и утилиту) и столкнулся со странным исключением.
Exception in thread "main" java.lang.ClassFormatError: Invalid length 65526 in LocalVariableTable in class file
Я пытаюсь отредактировать байт-код файла .class,...
192 просмотров
schedule
25.06.2023
Код Byte Buddy для передачи вновь созданного объекта в метод
Итак, я пытаюсь сгенерировать относительно простой код с помощью Byte Buddy, но постоянно сталкиваюсь с исключениями.
По сути, я пытаюсь, чтобы Byte Buddy (версия 1.9.0) генерировал эквивалент следующего класса Java (это всего лишь упрощенный...
114 просмотров
schedule
27.10.2023
Частный конструктор JVM INVOKESPECIAL с ASM
Я использую ASM для генерации некоторого байт-кода и его динамического выполнения. Но есть случай, когда мне нужно вызвать частный конструктор, но я не понял, как это сделать. Я знаю, что можно вызвать частный конструктор через отражение...
473 просмотров
schedule
09.01.2024