Spec-Zone.ru › OpenJDK 24

Перечисление Opcode

java.lang.Object
java.lang.Enum<Opcode>
java.lang.classfile.Opcode
Все реализованные интерфейсы:
Serializable, Comparable<Opcode>, Constable
public enum Opcode extends Enum<Opcode>
Описывает коды операций набора инструкций JVM, как описано в JVMS 6.5. Это включает в себя несколько псевдокодов, изменённых с помощью wide.

Код операции описывает операцию инструкции.

Примечание API:
Константы перечисления названы по мнемоническим обозначениям кодов операций в верхнем регистре. Псевдокоды расширения с широким диапазоном имен названы с использованием исходного мнемонического обозначения кодов операций плюс _W суффикс. Однако, ldc_w, ldc2_w, goto_w и jsr_w являются законными кодами операций, а не псевдокодами расширения с широким диапазоном.
См. Спецификацию виртуальной машины Java:
6.5 Инструкции
С тех пор:
24
См. также:
  • Instruction

Краткое описание вложенных классов

Модификатор и тип Класс Описание
static enum  Opcode.Kind
Типы кодов операций.

Вложенные классы/интерфейсы, объявленные в классе java.lang.Enum

Enum.EnumDesc<E extends Enum<E>>

Краткое описание констант перечисления

Константа перечисления Описание
AALOAD
Загрузка reference из массива.
AASTORE
Запись в массив reference.
ACONST_NULL
Вставка null.
ALOAD
Загрузка reference из локальной переменной.
ALOAD_0
Загрузка reference из слота локальной переменной 0.
ALOAD_1
Загрузка reference из слота локальной переменной 1.
ALOAD_2
Загрузка reference из слота локальной переменной 2.
ALOAD_3
Загрузка reference из слота локальной переменной 3.
ALOAD_W
Загрузка reference из локальной переменной (индекс большого размера).
ANEWARRAY
Создание нового массива reference.
ARETURN
Возврат reference из метода.
ARRAYLENGTH
Получение длины массива.
ASTORE
Запись reference в локальную переменную.
ASTORE_0
Запись reference в слот локальной переменной 0.
ASTORE_1
Запись reference в слот локальной переменной 1.
ASTORE_2
Запись reference в слот локальной переменной 2.
ASTORE_3
Запись reference в слот локальной переменной 3.
ASTORE_W
Запись reference в локальную переменную (индекс большого размера).
ATHROW
Выброс исключения или ошибки.
BALOAD
Загрузка byte или boolean из массива.
BASTORE
Запись в массив byte или boolean.
BIPUSH
Вставка значения int с расширением знака из непосредственного значения byte.
CALOAD
Загрузка char из массива.
CASTORE
Запись в массив char.
CHECKCAST
Проверка, является ли объект заданного типа.
D2F
Преобразование double в float.
D2I
Преобразование double в int.
D2L
Преобразование double в long.
DADD
Сложение double.
DALOAD
Загрузка double из массива.
DASTORE
Запись в массив double.
DCMPG
Сравнение double.
DCMPL
Сравнение double.
DCONST_0
Вставка константы double 0.0D.
DCONST_1
Вставка константы double 1.0D.
DDIV
Деление double.
DLOAD
Загрузка double из локальной переменной.
DLOAD_0
Загрузка double из слота локальной переменной 0.
DLOAD_1
Загрузка double из слота локальной переменной 1.
DLOAD_2
Загрузка double из слота локальной переменной 2.
DLOAD_3
Загрузка double из слота локальной переменной 3.
DLOAD_W
Загрузка double из локальной переменной (индекс большого размера).
DMUL
Умножение double.
DNEG
Отрицание double.
DREM
Остаток от деления double.
DRETURN
Возврат double из метода.
DSTORE
Запись double в локальную переменную.
DSTORE_0
Запись double в слот локальной переменной 0.
DSTORE_1
Запись double в слот локальной переменной 1.
DSTORE_2
Запись double в слот локальной переменной 2.
DSTORE_3
Запись double в слот локальной переменной 3.
DSTORE_W
Запись double в локальную переменную (индекс большого размера).
DSUB
Вычитание double.
DUP
Дублирование вершины стека операндов.
DUP_X1
Дублирование вершины стека операндов и вставка двух значений вниз.
DUP_X2
Дублирование вершины стека операндов и вставка двух или трех значений вниз.
DUP2
Дублирование верхних одного или двух значений стека операндов.
DUP2_X1
Дублирование верхних одного или двух значений стека операндов и вставка двух или трех значений вниз.
DUP2_X2
Дублирование верхних одного или двух значений стека операндов и вставка двух, трех или четырех значений вниз.
F2D
Преобразование float в double.
F2I
Преобразование float в int.
F2L
Преобразование float в long.
FADD
Сложение float.
FALOAD
Загрузка float из массива.
FASTORE
Запись в массив float.
FCMPG
Сравнение float.
FCMPL
Сравнение float.
FCONST_0
Вставка константы float 0.0F.
FCONST_1
Поместить константу float в стек.
FCONST_2
Поместить константу float в стек.
FDIV
Деление float.
FLOAD
Загрузка float из локальной переменной.
FLOAD_0
Загрузка float из ячейки локальной переменной 0.
FLOAD_1
Загрузка float из ячейки локальной переменной 1.
FLOAD_2
Загрузка float из ячейки локальной переменной 2.
FLOAD_3
Загрузка float из ячейки локальной переменной 3.
FLOAD_W
Загрузка float из локальной переменной (широкий индекс).
FMUL
Умножение float.
FNEG
Изменение знака float.
FREM
Остаток от деления float.
FRETURN
Возврат float из метода.
FSTORE
Сохранение float в локальную переменную.
FSTORE_0
Сохранение float в ячейку локальной переменной 0.
FSTORE_1
Сохранение float в ячейку локальной переменной 1.
FSTORE_2
Сохранение float в ячейку локальной переменной 2.
FSTORE_3
Сохранение float в ячейку локальной переменной 3.
FSTORE_W
Сохранение float в локальную переменную (широкий индекс).
FSUB
Вычитание float.
GETFIELD
Извлечение поля из объекта.
GETSTATIC
Получение поля static из класса.
GOTO
Безусловный переход.
GOTO_W
Безусловный переход (широкий индекс).
I2B
Преобразование int в byte.
I2C
Преобразование int в char.
I2D
Преобразование int в double.
I2F
Преобразование int в float.
I2L
Преобразование int в long.
I2S
Преобразование int в short.
IADD
Сложение int.
IALOAD
Загрузка int из массива.
IAND
Побитовое И int.
IASTORE
Сохранение в массив int.
ICONST_0
Поместить константу int 0 в стек.
ICONST_1
Поместить константу int 1 в стек.
ICONST_2
Поместить константу int 2 в стек.
ICONST_3
Поместить константу int 3 в стек.
ICONST_4
Поместить константу int 4 в стек.
ICONST_5
Поместить константу int 5 в стек.
ICONST_M1
Поместить константу int -1 в стек.
IDIV
Деление int.
IF_ACMPEQ
Переход, если сравнение reference operand1 == operand2 успешно.
IF_ACMPNE
Переход, если сравнение reference operand1 != operand2 успешно.
IF_ICMPEQ
Переход, если сравнение int operand1 == operand2 успешно.
IF_ICMPGE
Переход, если сравнение int operand1 >= operand2 успешно.
IF_ICMPGT
Переход, если сравнение int operand1 > operand2 успешно.
IF_ICMPLE
Переход, если сравнение int operand1 <= operand2 успешно.
IF_ICMPLT
Переход, если сравнение int operand1 < operand2 успешно.
IF_ICMPNE
Переход, если сравнение int operand1 != operand2 успешно.
IFEQ
Переход, если сравнение int == 0 успешно.
IFGE
Переход, если сравнение int >= 0 успешно.
IFGT
Переход, если сравнение int > 0 успешно.
IFLE
Переход, если сравнение int <= 0 успешно.
IFLT
Переход, если сравнение int < 0 успешно.
IFNE
Переход, если сравнение int != 0 успешно.
IFNONNULL
Переход, если reference не равно null.
IFNULL
Переход, если reference равно null.
IINC
Инкремент локальной переменной int на константу.
IINC_W
Инкремент локальной переменной на константу (широкий индекс).
ILOAD
Загрузка int из локальной переменной.
ILOAD_0
Загрузка int из ячейки локальной переменной 0.
ILOAD_1
Загрузка int из ячейки локальной переменной 1.
ILOAD_2
Загрузка int из ячейки локальной переменной 2.
ILOAD_3
Загрузка int из ячейки локальной переменной 3.
ILOAD_W
Загрузка int из локальной переменной (широкий индекс).
IMUL
Умножить int.
INEG
Инвертировать int.
INSTANCEOF
Определить, является ли объект заданного типа.
INVOKEDYNAMIC
Вызвать динамически вычисляемую точку вызова.
INVOKEINTERFACE
Вызвать метод интерфейса.
INVOKESPECIAL
Вызвать метод экземпляра; прямой вызов методов инициализации экземпляра и методов текущего класса и его супертипов.
INVOKESTATIC
Вызвать метод класса (static).
INVOKEVIRTUAL
Вызвать метод экземпляра; диспетчеризация на основе класса.
IOR
Побитовое ИЛИ int.
IREM
Остаток int.
IRETURN
Вернуть int из метода.
ISHL
Сдвиг влево int.
ISHR
Арифметический сдвиг вправо int.
ISTORE
Сохранить int в локальную переменную.
ISTORE_0
Сохранить int в слот локальной переменной 0.
ISTORE_1
Сохранить int в слот локальной переменной 1.
ISTORE_2
Сохранить int в слот локальной переменной 2.
ISTORE_3
Сохранить int в слот локальной переменной 3.
ISTORE_W
Сохранить int в локальную переменную (широкий индекс).
ISUB
Вычесть int.
IUSHR
Логический сдвиг вправо int.
IXOR
Побитовое XOR int.
JSR
(Устарело) Переход к подпрограмме; последний раз использовалось в основной версии 50.
JSR_W
(Устарело) Переход к подпрограмме (широкий индекс); последний раз использовалось в основной версии 50.
L2D
Преобразовать long в double.
L2F
Преобразовать long в float.
L2I
Преобразовать long в int.
LADD
Добавить long.
LALOAD
Загрузить long из массива.
LAND
Побитовое И long.
LASTORE
Сохранить в массив long.
LCMP
Сравнить long.
LCONST_0
Поместить константу long 0L.
LCONST_1
Поместить константу long 1L.
LDC
Поместить элемент из пула констант времени выполнения.
LDC_W
Поместить элемент из пула констант времени выполнения (широкий индекс).
LDC2_W
Поместить long или double из пула констант времени выполнения (широкий индекс).
LDIV
Разделить long.
LLOAD
Загрузить long из локальной переменной.
LLOAD_0
Загрузить long из слота локальной переменной 0.
LLOAD_1
Загрузить long из слота локальной переменной 1.
LLOAD_2
Загрузить long из слота локальной переменной 2.
LLOAD_3
Загрузить long из слота локальной переменной 3.
LLOAD_W
Загрузить long из локальной переменной (широкий индекс).
LMUL
Умножить long.
LNEG
Инвертировать long.
LOOKUPSWITCH
Доступ к таблице переходов по совпадению ключей и переход.
LOR
Побитовое ИЛИ long.
LREM
Остаток long.
LRETURN
Вернуть long из метода.
LSHL
Сдвиг влево long.
LSHR
Арифметический сдвиг вправо long.
LSTORE
Сохранить long в локальную переменную.
LSTORE_0
Сохранить long в слот локальной переменной 0.
LSTORE_1
Сохранить long в слот локальной переменной 1.
LSTORE_2
Сохранить long в слот локальной переменной 2.
LSTORE_3
Сохранить long в слот локальной переменной 3.
LSTORE_W
Сохранить long в локальную переменную (широкий индекс).
LSUB
Вычесть long.
LUSHR
Логический сдвиг вправо long.
LXOR
Побитовое XOR long.
MONITORENTER
Войти в монитор для объекта.
MONITOREXIT
Выйти из монитора для объекта.
MULTIANEWARRAY
Создать новый многомерный массив.
NEW
Создать новый объект.
NEWARRAY
Создать новый массив.
NOP
Ничего не делать.
POP
Удалить верхнее значение стека операндов.
POP2
Удалить одно или два верхних значения стека операндов.
PUTFIELD
Установить поле в объекте.
PUTSTATIC
Установить поле static в классе.
RET
(Устарело) Вернуться из подпрограммы; последний раз использовалось в основной версии 50.
RET_W
(Устарело) Вернуться из подпрограммы (широкий индекс); последний раз использовалось в основной версии 50.
RETURN
Вернуть void из метода.
SALOAD
Загрузка short из массива.
SASTORE
Сохранение в массив short.
SIPUSH
Вставка значения int из расширения знака немедленного значения short.
SWAP
Меняет местами верхние два значения стека операндов.
TABLESWITCH
Обращение к таблице переходов по индексу и переход.

Краткое описание методов

Модификатор и тип Метод Описание
int bytecode()
Возвращает значение кода операции.
boolean isWide()
Возвращает true, если это псевдо-код операции, измененный кодом операции wide.
Opcode.Kind kind()
Возвращает тип операции.
int sizeIfFixed()
Возвращает размер инструкции в байтах, если она фиксированная, или -1 в противном случае.
static Opcode valueOf(String name)
Возвращает константу перечисления этого класса со заданным именем.
static Opcode[] values()
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления.

Методы, объявленные в классе java.lang.Enum

clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf

Методы, объявленные в классе java.lang.Object

getClass, notify, notifyAll, wait, wait, wait

Подробное описание констант перечисления

NOP

public static final Opcode NOP
Ничего не делать.
См. Спецификацию виртуальной машины Java:
6.5.nop nop
См. также:
  • Opcode.Kind.NOP

ACONST_NULL

public static final Opcode ACONST_NULL
Положить null.
См. Спецификацию виртуальной машины Java:
6.5.aconst_null aconst_null
См. также:
  • ConstantInstruction.IntrinsicConstantInstruction
  • Opcode.Kind.CONSTANT

ICONST_M1

public static final Opcode ICONST_M1
Положить константу типа int со значением -1.
См. Спецификацию виртуальной машины Java:
6.5.iconst_i iconst_<i>
См. также:
  • ConstantInstruction.IntrinsicConstantInstruction
  • Opcode.Kind.CONSTANT

ICONST_0

public static final Opcode ICONST_0
Положить константу типа int со значением 0.
См. Спецификацию виртуальной машины Java:
6.5.iconst_i iconst_<i>
См. также:
  • ConstantInstruction.IntrinsicConstantInstruction
  • Opcode.Kind.CONSTANT

ICONST_1

public static final Opcode ICONST_1
Положить константу типа int со значением 1.
См. Спецификацию виртуальной машины Java:
6.5.iconst_i iconst_<i>
См. также:
  • ConstantInstruction.IntrinsicConstantInstruction
  • Opcode.Kind.CONSTANT

ICONST_2

public static final Opcode ICONST_2
Положить константу типа int со значением 2.
См. Спецификацию виртуальной машины Java:
6.5.iconst_i iconst_<i>
См. также:
  • ConstantInstruction.IntrinsicConstantInstruction
  • Opcode.Kind.CONSTANT

ICONST_3

public static final Opcode ICONST_3
Положить константу типа int со значением 3.
См. Спецификацию виртуальной машины Java:
6.5.iconst_i iconst_<i>
См. также:
  • ConstantInstruction.IntrinsicConstantInstruction
  • Opcode.Kind.CONSTANT

ICONST_4

public static final Opcode ICONST_4
Положить константу типа int со значением 4.
См. Спецификацию виртуальной машины Java:
6.5.iconst_i iconst_<i>
См. также:
  • ConstantInstruction.IntrinsicConstantInstruction
  • Opcode.Kind.CONSTANT

ICONST_5

public static final Opcode ICONST_5
Положить константу типа int со значением 5.
См. Спецификацию виртуальной машины Java:
6.5.iconst_i iconst_<i>
См. также:
  • ConstantInstruction.IntrinsicConstantInstruction
  • Opcode.Kind.CONSTANT

LCONST_0

public static final Opcode LCONST_0
Положить константу типа long со значением 0L.
См. Спецификацию виртуальной машины Java:
6.5.lconst_l lconst_<l>
См. также:
  • ConstantInstruction.IntrinsicConstantInstruction
  • Opcode.Kind.CONSTANT

LCONST_1

public static final Opcode LCONST_1
Положить константу типа long со значением 1L.
См. Спецификацию виртуальной машины Java:
6.5.lconst_l lconst_<l>
См. также:
  • ConstantInstruction.IntrinsicConstantInstruction
  • Opcode.Kind.CONSTANT

FCONST_0

public static final Opcode FCONST_0
Положить константу типа float со значением 0.0F.
См. Спецификацию виртуальной машины Java:
6.5.fconst_f fconst_<f>
См. также:
  • ConstantInstruction.IntrinsicConstantInstruction
  • Opcode.Kind.CONSTANT

FCONST_1

public static final Opcode FCONST_1
Положить константу типа float со значением 1.0F.
См. Спецификацию виртуальной машины Java:
6.5.fconst_f fconst_<f>
См. также:
  • ConstantInstruction.IntrinsicConstantInstruction
  • Opcode.Kind.CONSTANT

FCONST_2

public static final Opcode FCONST_2
Положить константу типа float со значением 2.0F.
См. Спецификацию виртуальной машины Java:
6.5.fconst_f fconst_<f>
См. также:
  • ConstantInstruction.IntrinsicConstantInstruction
  • Opcode.Kind.CONSTANT

DCONST_0

public static final Opcode DCONST_0
Положить константу типа double со значением 0.0D.
См. Спецификацию виртуальной машины Java:
6.5.dconst_d dconst_<d>
См. также:
  • ConstantInstruction.IntrinsicConstantInstruction
  • Opcode.Kind.CONSTANT
END_OF_DOCUMENT_MARKER

DCONST_1

public static final Opcode DCONST_1
Положить константу double типа 1.0D.
См. Спецификацию виртуальной машины Java:
6.5.dconst_d dconst_<d>
См. также:
  • ConstantInstruction.IntrinsicConstantInstruction
  • Opcode.Kind.CONSTANT

BIPUSH

public static final Opcode BIPUSH
Положить значение типа int из расширенного со знаком значения типа byte.
См. Спецификацию виртуальной машины Java:
6.5.bipush bipush
См. также:
  • ConstantInstruction.ArgumentConstantInstruction
  • Opcode.Kind.CONSTANT

SIPUSH

public static final Opcode SIPUSH
Положить значение типа int из расширенного со знаком значения типа short.
См. Спецификацию виртуальной машины Java:
6.5.sipush sipush
См. также:
  • ConstantInstruction.ArgumentConstantInstruction
  • Opcode.Kind.CONSTANT

LDC

public static final Opcode LDC
Положить элемент из пула констант во время выполнения.
См. Спецификацию виртуальной машины Java:
6.5.ldc ldc
См. также:
  • ConstantInstruction.LoadConstantInstruction
  • Opcode.Kind.CONSTANT

LDC_W

public static final Opcode LDC_W
Положить элемент из пула констант во время выполнения (широкий индекс).
См. Спецификацию виртуальной машины Java:
6.5.ldc_w ldc_w
См. также:
  • ConstantInstruction.LoadConstantInstruction
  • Opcode.Kind.CONSTANT

LDC2_W

public static final Opcode LDC2_W
Положить long или double из пула констант во время выполнения (широкий индекс).
См. Спецификацию виртуальной машины Java:
6.5.ldc2_w ldc2_w
См. также:
  • ConstantInstruction.LoadConstantInstruction
  • Opcode.Kind.CONSTANT

ILOAD

public static final Opcode ILOAD
Загрузить int из локальной переменной.
См. Спецификацию виртуальной машины Java:
6.5.iload iload
См. также:
  • Opcode.Kind.LOAD

LLOAD

public static final Opcode LLOAD
Загрузить long из локальной переменной.
См. Спецификацию виртуальной машины Java:
6.5.lload lload
См. также:
  • Opcode.Kind.LOAD

FLOAD

public static final Opcode FLOAD
Загрузить float из локальной переменной.
См. Спецификацию виртуальной машины Java:
6.5.fload fload
См. также:
  • Opcode.Kind.LOAD

DLOAD

public static final Opcode DLOAD
Загрузить double из локальной переменной.
См. Спецификацию виртуальной машины Java:
6.5.dload dload
См. также:
  • Opcode.Kind.LOAD

ALOAD

public static final Opcode ALOAD
Загрузить reference из локальной переменной.
См. Спецификацию виртуальной машины Java:
6.5.aload aload
См. также:
  • Opcode.Kind.LOAD

ILOAD_0

public static final Opcode ILOAD_0
Загрузить int из слота локальной переменной 0.
См. Спецификацию виртуальной машины Java:
6.5.iload_n iload_<n>
См. также:
  • Opcode.Kind.LOAD

ILOAD_1

public static final Opcode ILOAD_1
Загрузить int из слота локальной переменной 1.
См. Спецификацию виртуальной машины Java:
6.5.iload_n iload_<n>
См. также:
  • Opcode.Kind.LOAD

ILOAD_2

public static final Opcode ILOAD_2
Загрузить int из слота локальной переменной 2.
См. Спецификацию виртуальной машины Java:
6.5.iload_n iload_<n>
См. также:
  • Opcode.Kind.LOAD

ILOAD_3

public static final Opcode ILOAD_3
Загрузить int из слота локальной переменной 3.
См. Спецификацию виртуальной машины Java:
6.5.iload_n iload_<n>
См. также:
  • Opcode.Kind.LOAD

LLOAD_0

public static final Opcode LLOAD_0
Загрузить long из слота локальной переменной 0.
См. Спецификацию виртуальной машины Java:
6.5.lload_n lload_<n>
См. также:
  • Opcode.Kind.LOAD

LLOAD_1

public static final Opcode LLOAD_1
Загрузить long из слота локальной переменной 1.
См. Спецификацию виртуальной машины Java:
6.5.lload_n lload_<n>
См. также:
  • Opcode.Kind.LOAD

LLOAD_2

public static final Opcode LLOAD_2
Загрузить long из слота локальной переменной 2.
См. Спецификацию виртуальной машины Java:
6.5.lload_n lload_<n>
См. также:
  • Opcode.Kind.LOAD

LLOAD_3

public static final Opcode LLOAD_3
Загрузка long из локального слота переменной 3.
См. Спецификацию виртуальной машины Java:
6.5.lload_n lload_<n>
См. также:
  • Opcode.Kind.LOAD

FLOAD_0

public static final Opcode FLOAD_0
Загрузка float из локального слота переменной 0.
См. Спецификацию виртуальной машины Java:
6.5.fload_n fload_<n>
См. также:
  • Opcode.Kind.LOAD

FLOAD_1

public static final Opcode FLOAD_1
Загрузка float из локального слота переменной 1.
См. Спецификацию виртуальной машины Java:
6.5.fload_n fload_<n>
См. также:
  • Opcode.Kind.LOAD

FLOAD_2

public static final Opcode FLOAD_2
Загрузка float из локального слота переменной 2.
См. Спецификацию виртуальной машины Java:
6.5.fload_n fload_<n>
См. также:
  • Opcode.Kind.LOAD

FLOAD_3

public static final Opcode FLOAD_3
Загрузка float из локального слота переменной 3.
См. Спецификацию виртуальной машины Java:
6.5.fload_n fload_<n>
См. также:
  • Opcode.Kind.LOAD

DLOAD_0

public static final Opcode DLOAD_0
Загрузка double из локального слота переменной 0.
См. Спецификацию виртуальной машины Java:
6.5.dload_n dload_<n>
См. также:
  • Opcode.Kind.LOAD

DLOAD_1

public static final Opcode DLOAD_1
Загрузка double из локального слота переменной 1.
См. Спецификацию виртуальной машины Java:
6.5.dload_n dload_<n>
См. также:
  • Opcode.Kind.LOAD

DLOAD_2

public static final Opcode DLOAD_2
Загрузка double из локального слота переменной 2.
См. Спецификацию виртуальной машины Java:
6.5.dload_n dload_<n>
См. также:
  • Opcode.Kind.LOAD

DLOAD_3

public static final Opcode DLOAD_3
Загрузка double из локального слота переменной 3.
См. Спецификацию виртуальной машины Java:
6.5.dload_n dload_<n>
См. также:
  • Opcode.Kind.LOAD

ALOAD_0

public static final Opcode ALOAD_0
Загрузка reference из локального слота переменной 0.
См. Спецификацию виртуальной машины Java:
6.5.aload_n aload_<n>
См. также:
  • Opcode.Kind.LOAD

ALOAD_1

public static final Opcode ALOAD_1
Загрузка reference из локального слота переменной 1.
См. Спецификацию виртуальной машины Java:
6.5.aload_n aload_<n>
См. также:
  • Opcode.Kind.LOAD

ALOAD_2

public static final Opcode ALOAD_2
Загрузка reference из локального слота переменной 2.
См. Спецификацию виртуальной машины Java:
6.5.aload_n aload_<n>
См. также:
  • Opcode.Kind.LOAD

ALOAD_3

public static final Opcode ALOAD_3
Загрузка reference из локального слота переменной 3.
См. Спецификацию виртуальной машины Java:
6.5.aload_n aload_<n>
См. также:
  • Opcode.Kind.LOAD

IALOAD

public static final Opcode IALOAD
Загрузка int из массива.
См. Спецификацию виртуальной машины Java:
6.5.iaload iaload
См. также:
  • Opcode.Kind.ARRAY_LOAD

LALOAD

public static final Opcode LALOAD
Загрузка long из массива.
См. Спецификацию виртуальной машины Java:
6.5.laload laload
См. также:
  • Opcode.Kind.ARRAY_LOAD

FALOAD

public static final Opcode FALOAD
Загрузка float из массива.
См. Спецификацию виртуальной машины Java:
6.5.faload faload
См. также:
  • Opcode.Kind.ARRAY_LOAD

DALOAD

public static final Opcode DALOAD
Загрузка double из массива.
См. Спецификацию виртуальной машины Java:
6.5.daload daload
См. также:
  • Opcode.Kind.ARRAY_LOAD

AALOAD

public static final Opcode AALOAD
Загрузка reference из массива.
См. Спецификацию виртуальной машины Java:
6.5.aaload aaload
См. также:
  • Opcode.Kind.ARRAY_LOAD

BALOAD

public static final Opcode BALOAD
Загрузка byte или boolean из массива.
См. Спецификацию виртуальной машины Java:
6.5.baload baload
См. также:
  • Opcode.Kind.ARRAY_LOAD
END_OF_DOCUMENT_MARKER

CALOAD

public static final Opcode CALOAD
Загрузка char из массива.
См. Спецификацию виртуальной машины Java:
6.5.caload caload
См. также:
  • Opcode.Kind.ARRAY_LOAD

SALOAD

public static final Opcode SALOAD
Загрузка short из массива.
См. Спецификацию виртуальной машины Java:
6.5.saload saload
См. также:
  • Opcode.Kind.ARRAY_LOAD

ISTORE

public static final Opcode ISTORE
Сохранение int в локальную переменную.
См. Спецификацию виртуальной машины Java:
6.5.istore istore
См. также:
  • Opcode.Kind.STORE

LSTORE

public static final Opcode LSTORE
Сохранение long в локальную переменную.
См. Спецификацию виртуальной машины Java:
6.5.lstore lstore
См. также:
  • Opcode.Kind.STORE

FSTORE

public static final Opcode FSTORE
Сохранение float в локальную переменную.
См. Спецификацию виртуальной машины Java:
6.5.fstore fstore
См. также:
  • Opcode.Kind.STORE

DSTORE

public static final Opcode DSTORE
Сохранение double в локальную переменную.
См. Спецификацию виртуальной машины Java:
6.5.dstore dstore
См. также:
  • Opcode.Kind.STORE

ASTORE

public static final Opcode ASTORE
Сохранение reference в локальную переменную. Также можно сохранить тип returnAddress.
См. Спецификацию виртуальной машины Java:
6.5.astore astore
См. также:
  • Opcode.Kind.STORE

ISTORE_0

public static final Opcode ISTORE_0
Сохранение int в слот локальной переменной 0.
См. Спецификацию виртуальной машины Java:
6.5.istore_n istore_<n>
См. также:
  • Opcode.Kind.STORE

ISTORE_1

public static final Opcode ISTORE_1
Сохранение int в слот локальной переменной 1.
См. Спецификацию виртуальной машины Java:
6.5.istore_n istore_<n>
См. также:
  • Opcode.Kind.STORE

ISTORE_2

public static final Opcode ISTORE_2
Сохранение int в слот локальной переменной 2.
См. Спецификацию виртуальной машины Java:
6.5.istore_n istore_<n>
См. также:
  • Opcode.Kind.STORE

ISTORE_3

public static final Opcode ISTORE_3
Сохранение int в слот локальной переменной 3.
См. Спецификацию виртуальной машины Java:
6.5.istore_n istore_<n>
См. также:
  • Opcode.Kind.STORE

LSTORE_0

public static final Opcode LSTORE_0
Сохранение long в слот локальной переменной 0.
См. Спецификацию виртуальной машины Java:
6.5.lstore_n lstore_<n>
См. также:
  • Opcode.Kind.STORE

LSTORE_1

public static final Opcode LSTORE_1
Сохранение long в слот локальной переменной 1.
См. Спецификацию виртуальной машины Java:
6.5.lstore_n lstore_<n>
См. также:
  • Opcode.Kind.STORE

LSTORE_2

public static final Opcode LSTORE_2
Сохранение long в слот локальной переменной 2.
См. Спецификацию виртуальной машины Java:
6.5.lstore_n lstore_<n>
См. также:
  • Opcode.Kind.STORE

LSTORE_3

public static final Opcode LSTORE_3
Сохранение long в слот локальной переменной 3.
См. Спецификацию виртуальной машины Java:
6.5.lstore_n lstore_<n>
См. также:
  • Opcode.Kind.STORE

FSTORE_0

public static final Opcode FSTORE_0
Сохранение float в слот локальной переменной 0.
См. Спецификацию виртуальной машины Java:
6.5.fstore_n fstore_<n>
См. также:
  • Opcode.Kind.STORE

FSTORE_1

public static final Opcode FSTORE_1
Сохранение float в слот локальной переменной 1.
См. Спецификацию виртуальной машины Java:
6.5.fstore_n fstore_<n>
См. также:
  • Opcode.Kind.STORE

FSTORE_2

public static final Opcode FSTORE_2
Сохранение float в слот локальной переменной 2.
См. Спецификацию виртуальной машины Java:
6.5.fstore_n fstore_<n>
См. также:
  • Opcode.Kind.STORE

FSTORE_3

public static final Opcode FSTORE_3
Сохранение float в слот локальной переменной 3.
См. Спецификацию виртуальной машины Java:
6.5.fstore_n fstore_<n>
См. также:
  • Opcode.Kind.STORE

DSTORE_0

public static final Opcode DSTORE_0
Сохранить double в слот локальной переменной 0.
См. Спецификацию виртуальной машины Java:
6.5.dstore_n dstore_<n>
См. также:
  • Opcode.Kind.STORE

DSTORE_1

public static final Opcode DSTORE_1
Сохранить double в слот локальной переменной 1.
См. Спецификацию виртуальной машины Java:
6.5.dstore_n dstore_<n>
См. также:
  • Opcode.Kind.STORE

DSTORE_2

public static final Opcode DSTORE_2
Сохранить double в слот локальной переменной 2.
См. Спецификацию виртуальной машины Java:
6.5.dstore_n dstore_<n>
См. также:
  • Opcode.Kind.STORE

DSTORE_3

public static final Opcode DSTORE_3
Сохранить double в слот локальной переменной 3.
См. Спецификацию виртуальной машины Java:
6.5.dstore_n dstore_<n>
См. также:
  • Opcode.Kind.STORE

ASTORE_0

public static final Opcode ASTORE_0
Сохранить reference в слот локальной переменной 0. Также можно сохранить тип returnAddress.
См. Спецификацию виртуальной машины Java:
6.5.astore_n astore_<n>
См. также:
  • Opcode.Kind.STORE

ASTORE_1

public static final Opcode ASTORE_1
Сохранить reference в слот локальной переменной 1. Также можно сохранить тип returnAddress.
См. Спецификацию виртуальной машины Java:
6.5.astore_n astore_<n>
См. также:
  • Opcode.Kind.STORE

ASTORE_2

public static final Opcode ASTORE_2
Сохранить reference в слот локальной переменной 2. Также можно сохранить тип returnAddress.
См. Спецификацию виртуальной машины Java:
6.5.astore_n astore_<n>
См. также:
  • Opcode.Kind.STORE

ASTORE_3

public static final Opcode ASTORE_3
Сохранить reference в слот локальной переменной 3. Также можно сохранить тип returnAddress.
См. Спецификацию виртуальной машины Java:
6.5.astore_n astore_<n>
См. также:
  • Opcode.Kind.STORE

IASTORE

public static final Opcode IASTORE
Сохранить в массив int.
См. Спецификацию виртуальной машины Java:
6.5.iastore iastore
См. также:
  • Opcode.Kind.ARRAY_STORE

LASTORE

public static final Opcode LASTORE
Сохранить в массив long.
См. Спецификацию виртуальной машины Java:
6.5.lastore lastore
См. также:
  • Opcode.Kind.ARRAY_STORE

FASTORE

public static final Opcode FASTORE
Сохранить в массив float.
См. Спецификацию виртуальной машины Java:
6.5.fastore fastore
См. также:
  • Opcode.Kind.ARRAY_STORE

DASTORE

public static final Opcode DASTORE
Сохранить в массив double.
См. Спецификацию виртуальной машины Java:
6.5.dastore dastore
См. также:
  • Opcode.Kind.ARRAY_STORE

AASTORE

public static final Opcode AASTORE
Сохранить в массив reference.
См. Спецификацию виртуальной машины Java:
6.5.aastore aastore
См. также:
  • Opcode.Kind.ARRAY_STORE

BASTORE

public static final Opcode BASTORE
Сохранить в массив byte или boolean.
См. Спецификацию виртуальной машины Java:
6.5.bastore bastore
См. также:
  • Opcode.Kind.ARRAY_STORE

CASTORE

public static final Opcode CASTORE
Сохранить в массив char.
См. Спецификацию виртуальной машины Java:
6.5.castore castore
См. также:
  • Opcode.Kind.ARRAY_STORE

SASTORE

public static final Opcode SASTORE
Сохранить в массив short.
См. Спецификацию виртуальной машины Java:
6.5.sastore sastore
См. также:
  • Opcode.Kind.ARRAY_STORE

POP

public static final Opcode POP
Извлечь верхнее значение стека операндов.
См. Спецификацию виртуальной машины Java:
6.5.pop pop
См. также:
  • Opcode.Kind.STACK

POP2

public static final Opcode POP2
Извлечь одно или два верхних значения стека операндов.
См. Спецификацию виртуальной машины Java:
6.5.pop2 pop2
См. также:
  • Opcode.Kind.STACK

DUP

public static final Opcode DUP
Дублировать верхнее значение стека операндов.
См. Спецификацию виртуальной машины Java:
6.5.dup dup
См. также:
  • Opcode.Kind.STACK

DUP_X1

public static final Opcode DUP_X1
Дублировать значение из верхней части стека операндов и вставить два значения ниже.
См. Java Virtual Machine Specification:
6.5.dup_x1 dup_x1
См. также:
  • Opcode.Kind.STACK

DUP_X2

public static final Opcode DUP_X2
Дублировать значение из верхней части стека операндов и вставить два или три значения ниже.
См. Java Virtual Machine Specification:
6.5.dup_x2 dup_x2
См. также:
  • Opcode.Kind.STACK

DUP2

public static final Opcode DUP2
Дублировать одно или два верхних значения стека операндов.
См. Java Virtual Machine Specification:
6.5.dup2 dup2
См. также:
  • Opcode.Kind.STACK

DUP2_X1

public static final Opcode DUP2_X1
Дублировать одно или два верхних значения стека операндов и вставить два или три значения ниже.
См. Java Virtual Machine Specification:
6.5.dup2_x1 dup2_x1
См. также:
  • Opcode.Kind.STACK

DUP2_X2

public static final Opcode DUP2_X2
Дублировать одно или два верхних значения стека операндов и вставить два, три или четыре значения ниже.
См. Java Virtual Machine Specification:
6.5.dup2_x2 dup2_x2
См. также:
  • Opcode.Kind.STACK

SWAP

public static final Opcode SWAP
Поменять местами два верхних значения стека операндов.
См. Java Virtual Machine Specification:
6.5.swap swap
См. также:
  • Opcode.Kind.STACK

IADD

public static final Opcode IADD
Сложить int.
См. Java Virtual Machine Specification:
6.5.iadd iadd
См. также:
  • Opcode.Kind.OPERATOR

LADD

public static final Opcode LADD
Сложить long.
См. Java Virtual Machine Specification:
6.5.ladd ladd
См. также:
  • Opcode.Kind.OPERATOR

FADD

public static final Opcode FADD
Сложить float.
См. Java Virtual Machine Specification:
6.5.fadd fadd
См. также:
  • Opcode.Kind.OPERATOR

DADD

public static final Opcode DADD
Сложить double.
См. Java Virtual Machine Specification:
6.5.dadd dadd
См. также:
  • Opcode.Kind.OPERATOR

ISUB

public static final Opcode ISUB
Вычесть int.
См. Java Virtual Machine Specification:
6.5.isub isub
См. также:
  • Opcode.Kind.OPERATOR

LSUB

public static final Opcode LSUB
Вычесть long.
См. Java Virtual Machine Specification:
6.5.lsub lsub
См. также:
  • Opcode.Kind.OPERATOR

FSUB

public static final Opcode FSUB
Вычесть float.
См. Java Virtual Machine Specification:
6.5.fsub fsub
См. также:
  • Opcode.Kind.OPERATOR

DSUB

public static final Opcode DSUB
Вычесть double.
См. Java Virtual Machine Specification:
6.5.dsub dsub
См. также:
  • Opcode.Kind.OPERATOR

IMUL

public static final Opcode IMUL
Умножить int.
См. Java Virtual Machine Specification:
6.5.imul imul
См. также:
  • Opcode.Kind.OPERATOR

LMUL

public static final Opcode LMUL
Умножить long.
См. Java Virtual Machine Specification:
6.5.lmul lmul
См. также:
  • Opcode.Kind.OPERATOR

FMUL

public static final Opcode FMUL
Умножить float.
См. Java Virtual Machine Specification:
6.5.fmul fmul
См. также:
  • Opcode.Kind.OPERATOR

DMUL

public static final Opcode DMUL
Умножить double.
См. Java Virtual Machine Specification:
6.5.dmul dmul
См. также:
  • Opcode.Kind.OPERATOR

IDIV

public static final Opcode IDIV
Разделить int.
См. Java Virtual Machine Specification:
6.5.idiv idiv
См. также:
  • Opcode.Kind.OPERATOR

LDIV

public static final Opcode LDIV
Разделить long.
См. Java Virtual Machine Specification:
6.5.ldiv ldiv
См. также:
  • Opcode.Kind.OPERATOR

FDIV

public static final Opcode FDIV
Разделить float.
См. Java Virtual Machine Specification:
6.5.fdiv fdiv
См. также:
  • Opcode.Kind.OPERATOR

DDIV

public static final Opcode DDIV
Деление double.
См. Спецификацию виртуальной машины Java:
6.5.ddiv ddiv
См. также:
  • Opcode.Kind.OPERATOR

IREM

public static final Opcode IREM
Остаток от деления int.
См. Спецификацию виртуальной машины Java:
6.5.irem irem
См. также:
  • Opcode.Kind.OPERATOR

LREM

public static final Opcode LREM
Остаток от деления long.
См. Спецификацию виртуальной машины Java:
6.5.lrem lrem
См. также:
  • Opcode.Kind.OPERATOR

FREM

public static final Opcode FREM
Остаток от деления float.
См. Спецификацию виртуальной машины Java:
6.5.frem frem
См. также:
  • Opcode.Kind.OPERATOR

DREM

public static final Opcode DREM
Остаток от деления double.
См. Спецификацию виртуальной машины Java:
6.5.drem drem
См. также:
  • Opcode.Kind.OPERATOR

INEG

public static final Opcode INEG
Изменение знака int.
См. Спецификацию виртуальной машины Java:
6.5.ineg ineg
См. также:
  • Opcode.Kind.OPERATOR

LNEG

public static final Opcode LNEG
Изменение знака long.
См. Спецификацию виртуальной машины Java:
6.5.lneg lneg
См. также:
  • Opcode.Kind.OPERATOR

FNEG

public static final Opcode FNEG
Изменение знака float.
См. Спецификацию виртуальной машины Java:
6.5.fneg fneg
См. также:
  • Opcode.Kind.OPERATOR

DNEG

public static final Opcode DNEG
Изменение знака double.
См. Спецификацию виртуальной машины Java:
6.5.dneg dneg
См. также:
  • Opcode.Kind.OPERATOR

ISHL

public static final Opcode ISHL
Сдвиг влево int.
См. Спецификацию виртуальной машины Java:
6.5.ishl ishl
См. также:
  • Opcode.Kind.OPERATOR

LSHL

public static final Opcode LSHL
Сдвиг влево long.
См. Спецификацию виртуальной машины Java:
6.5.lshl lshl
См. также:
  • Opcode.Kind.OPERATOR

ISHR

public static final Opcode ISHR
Арифметический сдвиг вправо int.
См. Спецификацию виртуальной машины Java:
6.5.ishr ishr
См. также:
  • Opcode.Kind.OPERATOR

LSHR

public static final Opcode LSHR
Арифметический сдвиг вправо long.
См. Спецификацию виртуальной машины Java:
6.5.lshr lshr
См. также:
  • Opcode.Kind.OPERATOR

IUSHR

public static final Opcode IUSHR
Логический сдвиг вправо int.
См. Спецификацию виртуальной машины Java:
6.5.iushr iushr
См. также:
  • Opcode.Kind.OPERATOR

LUSHR

public static final Opcode LUSHR
Логический сдвиг вправо long.
См. Спецификацию виртуальной машины Java:
6.5.lushr lushr
См. также:
  • Opcode.Kind.OPERATOR

IAND

public static final Opcode IAND
Побитовое И int.
Примечание API:
Это может быть использовано для реализации логического И boolean.
См. Спецификацию виртуальной машины Java:
6.5.iand iand
См. также:
  • Opcode.Kind.OPERATOR

LAND

public static final Opcode LAND
Побитовое И long.
См. Спецификацию виртуальной машины Java:
6.5.land land
См. также:
  • Opcode.Kind.OPERATOR

IOR

public static final Opcode IOR
Побитовое ИЛИ int.
Примечание API:
Это может быть использовано для реализации логического ИЛИ boolean.
См. Спецификацию виртуальной машины Java:
6.5.ior ior
См. также:
  • Opcode.Kind.OPERATOR

LOR

public static final Opcode LOR
Побитовое ИЛИ long.
См. Спецификацию виртуальной машины Java:
6.5.lor lor
См. также:
  • Opcode.Kind.OPERATOR

IXOR

public static final Opcode IXOR
Побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ int.
Примечание API:
Это может быть использовано для реализации логического ИСКЛЮЧАЮЩЕГО ИЛИ boolean.
См. Спецификацию виртуальной машины Java:
6.5.ixor ixor
См. также:
  • Opcode.Kind.OPERATOR

LXOR

public static final Opcode LXOR
Побитовое XOR long.
См. Спецификацию виртуальной машины Java:
6.5.lxor lxor
См. также:
  • Opcode.Kind.OPERATOR

IINC

public static final Opcode IINC
Увеличить локальную переменную типа int на константу.
См. Спецификацию виртуальной машины Java:
6.5.iinc iinc
См. также:
  • Opcode.Kind.INCREMENT

I2L

public static final Opcode I2L
Преобразовать int в long.
См. Спецификацию языка Java:
5.1.2 Расширяющее преобразование примитивных типов
См. Спецификацию виртуальной машины Java:
6.5.i2l i2l
См. также:
  • Opcode.Kind.CONVERT

I2F

public static final Opcode I2F
Преобразовать int в float.
См. Спецификацию языка Java:
5.1.2 Расширяющее преобразование примитивных типов
См. Спецификацию виртуальной машины Java:
6.5.i2f i2f
См. также:
  • Opcode.Kind.CONVERT

I2D

public static final Opcode I2D
Преобразовать int в double.
См. Спецификацию языка Java:
5.1.2 Расширяющее преобразование примитивных типов
См. Спецификацию виртуальной машины Java:
6.5.i2d i2d
См. также:
  • Opcode.Kind.CONVERT

L2I

public static final Opcode L2I
Преобразовать long в int.
См. Спецификацию языка Java:
5.1.3 Сужающее преобразование примитивных типов
См. Спецификацию виртуальной машины Java:
6.5.l2i l2i
См. также:
  • Opcode.Kind.CONVERT

L2F

public static final Opcode L2F
Преобразовать long в float.
См. Спецификацию языка Java:
5.1.2 Расширяющее преобразование примитивных типов
См. Спецификацию виртуальной машины Java:
6.5.l2f l2f
См. также:
  • Opcode.Kind.CONVERT

L2D

public static final Opcode L2D
Преобразовать long в double.
См. Спецификацию виртуальной машины Java:
6.5.l2d l2d
См. также:
  • Opcode.Kind.CONVERT

F2I

public static final Opcode F2I
Преобразовать float в int.
См. Спецификацию языка Java:
5.1.3 Сужающее преобразование примитивных типов
См. Спецификацию виртуальной машины Java:
6.5.f2i f2i
См. также:
  • Opcode.Kind.CONVERT

F2L

public static final Opcode F2L
Преобразовать float в long.
См. Спецификацию языка Java:
5.1.3 Сужающее преобразование примитивных типов
См. Спецификацию виртуальной машины Java:
6.5.f2l f2l
См. также:
  • Opcode.Kind.CONVERT

F2D

public static final Opcode F2D
Преобразовать float в double.
См. Спецификацию языка Java:
5.1.2 Расширяющее преобразование примитивных типов
См. Спецификацию виртуальной машины Java:
6.5.f2d f2d
См. также:
  • Opcode.Kind.CONVERT

D2I

public static final Opcode D2I
Преобразовать double в int.
См. Спецификацию языка Java:
5.1.3 Сужающее преобразование примитивных типов
См. Спецификацию виртуальной машины Java:
6.5.d2i d2i
См. также:
  • Opcode.Kind.CONVERT

D2L

public static final Opcode D2L
Преобразовать double в long.
См. Спецификацию виртуальной машины Java:
6.5.d2l d2l
См. также:
  • Opcode.Kind.CONVERT

D2F

public static final Opcode D2F
Преобразовать double в float.
См. Спецификацию языка Java:
5.1.3 Сужающее преобразование примитивных типов
См. Спецификацию виртуальной машины Java:
6.5.d2f d2f
См. также:
  • Opcode.Kind.CONVERT

I2B

public static final Opcode I2B
Преобразовать int в byte. Это эквивалентно сохранению вычислительного int в byte и последующей загрузке обратно.
См. Спецификацию языка Java:
5.1.3 Сужающее преобразование примитивных типов
См. Спецификацию виртуальной машины Java:
6.5.i2b i2b
См. также:
  • Opcode.Kind.CONVERT

I2C

public static final Opcode I2C
Преобразовать int в char. Это как если бы сохранить вычислительный int в char и загрузить его обратно.
См. Спецификацию языка Java:
5.1.3 Сужение примитивного преобразования
См. Спецификацию виртуальной машины Java:
6.5.i2c i2c
См. также:
  • Opcode.Kind.CONVERT

I2S

public static final Opcode I2S
Преобразовать int в short. Это как если бы сохранить вычислительный int в short и загрузить его обратно.
См. Спецификацию языка Java:
5.1.3 Сужение примитивного преобразования
См. Спецификацию виртуальной машины Java:
6.5.i2s i2s
См. также:
  • Opcode.Kind.CONVERT

LCMP

public static final Opcode LCMP
Сравнить long.
См. Спецификацию виртуальной машины Java:
6.5.lcmp lcmp
См. также:
  • Long.compare(long, long)
  • Opcode.Kind.OPERATOR

FCMPL

public static final Opcode FCMPL
Сравнить float. Возвращает -1, если какой-либо операнд является NaN.
См. Спецификацию виртуальной машины Java:
6.5.fcmp_op fcmp<op>
См. также:
  • Сравнение чисел с плавающей запятой
  • Opcode.Kind.OPERATOR

FCMPG

public static final Opcode FCMPG
Сравнить float. Возвращает 1, если какой-либо операнд является NaN.
См. Спецификацию виртуальной машины Java:
6.5.fcmp_op fcmp<op>
См. также:
  • Сравнение чисел с плавающей запятой
  • Opcode.Kind.OPERATOR

DCMPL

public static final Opcode DCMPL
Сравнить double. Возвращает -1, если какой-либо операнд является NaN.
См. Спецификацию виртуальной машины Java:
6.5.dcmp_op dcmp<op>
См. также:
  • Сравнение чисел с плавающей запятой
  • Opcode.Kind.OPERATOR

DCMPG

public static final Opcode DCMPG
Сравнить double. Возвращает 1, если какой-либо операнд является NaN.
См. Спецификацию виртуальной машины Java:
6.5.dcmp_op dcmp<op>
См. также:
  • Сравнение чисел с плавающей запятой
  • Opcode.Kind.OPERATOR

IFEQ

public static final Opcode IFEQ
Переход, если сравнение int == 0 успешно.
См. Спецификацию виртуальной машины Java:
6.5.if_cond if_<cond>
См. также:
  • Opcode.Kind.BRANCH

IFNE

public static final Opcode IFNE
Переход, если сравнение int != 0 успешно.
См. Спецификацию виртуальной машины Java:
6.5.if_cond if_<cond>
См. также:
  • Opcode.Kind.BRANCH

IFLT

public static final Opcode IFLT
Переход, если сравнение int < 0 успешно.
См. Спецификацию виртуальной машины Java:
6.5.if_cond if_<cond>
См. также:
  • Opcode.Kind.BRANCH

IFGE

public static final Opcode IFGE
Переход, если сравнение int >= 0 успешно.
См. Спецификацию виртуальной машины Java:
6.5.if_cond if_<cond>
См. также:
  • Opcode.Kind.BRANCH

IFGT

public static final Opcode IFGT
Переход, если сравнение int > 0 успешно.
См. Спецификацию виртуальной машины Java:
6.5.if_cond if_<cond>
См. также:
  • Opcode.Kind.BRANCH

IFLE

public static final Opcode IFLE
Переход, если сравнение int <= 0 успешно.
См. Спецификацию виртуальной машины Java:
6.5.if_cond if_<cond>
См. также:
  • Opcode.Kind.BRANCH

IF_ICMPEQ

public static final Opcode IF_ICMPEQ
Переход, если сравнение int operand1 == operand2 успешно.
См. Спецификацию виртуальной машины Java:
6.5.if_icmp_cond if_icmp<cond>
См. также:
  • Opcode.Kind.BRANCH

IF_ICMPNE

public static final Opcode IF_ICMPNE
Переход, если сравнение int operand1 != operand2 успешно.
См. Спецификацию виртуальной машины Java:
6.5.if_icmp_cond if_icmp<cond>
См. также:
  • Opcode.Kind.BRANCH

IF_ICMPLT

public static final Opcode IF_ICMPLT
Переход, если сравнение int operand1 < operand2 успешно.
См. Спецификацию виртуальной машины Java:
6.5.if_icmp_cond if_icmp<cond>
См. также:
  • Opcode.Kind.BRANCH

IF_ICMPGE

public static final Opcode IF_ICMPGE
Ветвление, если сравнение значений типа int operand1 >= operand2 успешно.
См. Спецификацию виртуальной машины Java:
6.5.if_icmp_cond if_icmp<cond>
См. также:
  • Opcode.Kind.BRANCH

IF_ICMPGT

public static final Opcode IF_ICMPGT
Ветвление, если сравнение значений типа int operand1 > operand2 успешно.
См. Спецификацию виртуальной машины Java:
6.5.if_icmp_cond if_icmp<cond>
См. также:
  • Opcode.Kind.BRANCH

IF_ICMPLE

public static final Opcode IF_ICMPLE
Ветвление, если сравнение значений типа int operand1 <= operand2 успешно.
См. Спецификацию виртуальной машины Java:
6.5.if_icmp_cond if_icmp<cond>
См. также:
  • Opcode.Kind.BRANCH

IF_ACMPEQ

public static final Opcode IF_ACMPEQ
Ветвление, если сравнение ссылочных значений reference operand1 == operand2 успешно.
См. Спецификацию виртуальной машины Java:
6.5.if_acmp_cond if_acmp<cond>
См. также:
  • Opcode.Kind.BRANCH

IF_ACMPNE

public static final Opcode IF_ACMPNE
Ветвление, если сравнение ссылочных значений reference operand1 != operand2 успешно.
См. Спецификацию виртуальной машины Java:
6.5.if_acmp_cond if_acmp<cond>
См. также:
  • Opcode.Kind.BRANCH

GOTO

public static final Opcode GOTO
Безусловный переход.
См. Спецификацию виртуальной машины Java:
6.5.goto goto
См. также:
  • Opcode.Kind.BRANCH

JSR

public static final Opcode JSR
(Отменено) Переход в подпрограмму; последний раз использовался в основной версии 50.
См. Спецификацию виртуальной машины Java:
4.9.1 Статические ограничения
6.5.jsr jsr
См. также:
  • Opcode.Kind.DISCONTINUED_JSR

RET

public static final Opcode RET
(Отменено) Возврат из подпрограммы; последний раз использовался в основной версии 50.
См. Спецификацию виртуальной машины Java:
4.9.1 Статические ограничения
6.5.ret ret
См. также:
  • Opcode.Kind.DISCONTINUED_RET

TABLESWITCH

public static final Opcode TABLESWITCH
Доступ к таблице переходов по индексу и переход.
См. Спецификацию виртуальной машины Java:
6.5.tableswitch tableswitch
См. также:
  • Opcode.Kind.TABLE_SWITCH

LOOKUPSWITCH

public static final Opcode LOOKUPSWITCH
Доступ к таблице переходов по соответствию ключа и переход.
См. Спецификацию виртуальной машины Java:
6.5.lookupswitch lookupswitch
См. также:
  • Opcode.Kind.LOOKUP_SWITCH

IRETURN

public static final Opcode IRETURN
Возврат значения типа int из метода.
См. Спецификацию виртуальной машины Java:
6.5.ireturn ireturn
См. также:
  • Opcode.Kind.RETURN

LRETURN

public static final Opcode LRETURN
Возврат значения типа long из метода.
См. Спецификацию виртуальной машины Java:
6.5.lreturn lreturn
См. также:
  • Opcode.Kind.RETURN

FRETURN

public static final Opcode FRETURN
Возврат значения типа float из метода.
См. Спецификацию виртуальной машины Java:
6.5.freturn freturn
См. также:
  • Opcode.Kind.RETURN

DRETURN

public static final Opcode DRETURN
Возврат значения типа double из метода.
См. Спецификацию виртуальной машины Java:
6.5.dreturn dreturn
См. также:
  • Opcode.Kind.RETURN

ARETURN

public static final Opcode ARETURN
Возврат значения типа reference из метода.
См. Спецификацию виртуальной машины Java:
6.5.areturn areturn
См. также:
  • Opcode.Kind.RETURN

RETURN

public static final Opcode RETURN
Возврат значения типа void из метода.
См. Спецификацию виртуальной машины Java:
6.5.return return
См. также:
  • Opcode.Kind.RETURN

GETSTATIC

public static final Opcode GETSTATIC
Получение статического поля из класса.
См. Спецификацию виртуальной машины Java:
6.5.getstatic getstatic
См. также:
  • Opcode.Kind.FIELD_ACCESS

PUTSTATIC

public static final Opcode PUTSTATIC
Установление статического поля в классе.
См. Спецификацию виртуальной машины Java:
6.5.putstatic putstatic
См. также:
  • Opcode.Kind.FIELD_ACCESS

GETFIELD

public static final Opcode GETFIELD
Извлечение поля из объекта.
См. Спецификацию виртуальной машины Java:
6.5.getfield getfield
См. также:
  • Opcode.Kind.FIELD_ACCESS

PUTFIELD

public static final Opcode PUTFIELD
Устанавливает поле в объекте.
См. Спецификацию виртуальной машины Java:
6.5.putfield putfield
См. также:
  • Opcode.Kind.FIELD_ACCESS

INVOKEVIRTUAL

public static final Opcode INVOKEVIRTUAL
Вызов метода экземпляра; диспетчеризация на основе класса.
См. Спецификацию виртуальной машины Java:
6.5.invokevirtual invokevirtual
См. также:
  • Opcode.Kind.INVOKE

INVOKESPECIAL

public static final Opcode INVOKESPECIAL
Вызов метода экземпляра; прямой вызов методов инициализации экземпляров и методов текущего класса и его супертипов.
См. Спецификацию виртуальной машины Java:
6.5.invokevirtual invokevirtual
См. также:
  • Opcode.Kind.INVOKE

INVOKESTATIC

public static final Opcode INVOKESTATIC
Вызов метода класса (static).
См. Спецификацию виртуальной машины Java:
6.5.invokestatic invokestatic
См. также:
  • Opcode.Kind.INVOKE

INVOKEINTERFACE

public static final Opcode INVOKEINTERFACE
Вызов метода интерфейса.
См. Спецификацию виртуальной машины Java:
6.5.invokeinterface invokeinterface
См. также:
  • Opcode.Kind.INVOKE

INVOKEDYNAMIC

public static final Opcode INVOKEDYNAMIC
Вызов вычислительного узла, вычисленного динамически.
См. Спецификацию виртуальной машины Java:
6.5.invokedynamic invokedynamic
См. также:
  • Opcode.Kind.INVOKE_DYNAMIC

NEW

public static final Opcode NEW
Создание нового объекта.
См. Спецификацию виртуальной машины Java:
6.5.new new
См. также:
  • Opcode.Kind.NEW_OBJECT

NEWARRAY

public static final Opcode NEWARRAY
Создание нового массива.
См. Спецификацию виртуальной машины Java:
6.5.newarray newarray
См. также:
  • Opcode.Kind.NEW_PRIMITIVE_ARRAY

ANEWARRAY

public static final Opcode ANEWARRAY
Создание нового массива типа reference.
См. Спецификацию виртуальной машины Java:
6.5.anewarray anewarray
См. также:
  • Opcode.Kind.NEW_REF_ARRAY

ARRAYLENGTH

public static final Opcode ARRAYLENGTH
Получение длины массива.
См. Спецификацию виртуальной машины Java:
6.5.arraylength arraylength
См. также:
  • Opcode.Kind.OPERATOR

ATHROW

public static final Opcode ATHROW
Выбрасывание исключения или ошибки.
См. Спецификацию виртуальной машины Java:
6.5.athrow athrow
См. также:
  • Opcode.Kind.THROW_EXCEPTION

CHECKCAST

public static final Opcode CHECKCAST
Проверка, является ли объект заданного типа.
См. Спецификацию виртуальной машины Java:
6.5.checkcast checkcast
См. также:
  • Class.cast(Object)
  • Opcode.Kind.TYPE_CHECK

INSTANCEOF

public static final Opcode INSTANCEOF
Определение, является ли объект заданного типа.
См. Спецификацию виртуальной машины Java:
6.5.instanceof instanceof
См. также:
  • Class.isInstance(Object)
  • Opcode.Kind.TYPE_CHECK

MONITORENTER

public static final Opcode MONITORENTER
Вход в монитор для объекта.
См. Спецификацию виртуальной машины Java:
6.5.monitorenter monitorenter
См. также:
  • Opcode.Kind.MONITOR

MONITOREXIT

public static final Opcode MONITOREXIT
Выход из монитора для объекта.
См. Спецификацию виртуальной машины Java:
6.5.monitorexit monitorexit
См. также:
  • Opcode.Kind.MONITOR

MULTIANEWARRAY

public static final Opcode MULTIANEWARRAY
Создание многомерного массива.
См. Спецификацию виртуальной машины Java:
6.5.multianewarray multianewarray
См. также:
  • Opcode.Kind.NEW_MULTI_ARRAY

IFNULL

public static final Opcode IFNULL
Переход, если reference равен null.
См. Спецификацию виртуальной машины Java:
6.5.ifnull ifnull
См. также:
  • Opcode.Kind.BRANCH

IFNONNULL

public static final Opcode IFNONNULL
Переход, если reference не равен null.
См. Спецификацию виртуальной машины Java:
6.5.ifnonnull ifnonnull
См. также:
  • Opcode.Kind.BRANCH

GOTO_W

public static final Opcode GOTO_W
Всегда переход (широкий индекс).
См. Спецификацию виртуальной машины Java:
6.5.goto_w goto_w
См. также:
  • Opcode.Kind.BRANCH

JSR_W

public static final Opcode JSR_W
(Отменено) Переход подпрограмме (широкий индекс); в последний раз использовался в основной версии 50.
См. Спецификацию виртуальной машины Java:
4.9.1 Статические ограничения
6.5.jsr_w jsr_w
См. также:
  • Opcode.Kind.DISCONTINUED_JSR

ILOAD_W

public static final Opcode ILOAD_W
Загрузка целого int из локальной переменной (широкий индекс). Это псевдо-оператор, модифицированный с помощью широкого.
См. Спецификацию виртуальной машины Java:
6.5.wide wide
6.5.iload iload
См. также:
  • Opcode.Kind.LOAD

LLOAD_W

public static final Opcode LLOAD_W
Загрузка long из локальной переменной (широкий индекс). Это псевдо-оператор, модифицированный с помощью широкого.
См. Спецификацию виртуальной машины Java:
6.5.wide wide
6.5.lload lload
См. также:
  • Opcode.Kind.LOAD

FLOAD_W

public static final Opcode FLOAD_W
Загрузка float из локальной переменной (широкий индекс). Это псевдо-оператор, модифицированный с помощью широкого.
См. Спецификацию виртуальной машины Java:
6.5.wide wide
6.5.fload fload
См. также:
  • Opcode.Kind.LOAD

DLOAD_W

public static final Opcode DLOAD_W
Загрузка double из локальной переменной (широкий индекс). Это псевдо-оператор, модифицированный с помощью широкого.
См. Спецификацию виртуальной машины Java:
6.5.wide wide
6.5.dload dload
См. также:
  • Opcode.Kind.LOAD

ALOAD_W

public static final Opcode ALOAD_W
Загрузка reference из локальной переменной (широкий индекс). Это псевдо-оператор, модифицированный с помощью широкого.
См. Спецификацию виртуальной машины Java:
6.5.wide wide
6.5.aload aload
См. также:
  • Opcode.Kind.LOAD

ISTORE_W

public static final Opcode ISTORE_W
Сохранение целого int в локальную переменную (широкий индекс). Это псевдо-оператор, модифицированный с помощью широкого.
См. Спецификацию виртуальной машины Java:
6.5.wide wide
6.5.istore istore
См. также:
  • Opcode.Kind.STORE

LSTORE_W

public static final Opcode LSTORE_W
Сохранение long в локальную переменную (широкий индекс). Это псевдо-оператор, модифицированный с помощью широкого.
См. Спецификацию виртуальной машины Java:
6.5.wide wide
6.5.lstore lstore
См. также:
  • Opcode.Kind.STORE

FSTORE_W

public static final Opcode FSTORE_W
Сохранение float в локальную переменную (широкий индекс). Это псевдо-оператор, модифицированный с помощью широкого.
См. Спецификацию виртуальной машины Java:
6.5.wide wide
6.5.fstore fstore
См. также:
  • Opcode.Kind.STORE

DSTORE_W

public static final Opcode DSTORE_W
Сохранение double в локальную переменную (широкий индекс). Это псевдо-оператор, модифицированный с помощью широкого.
См. Спецификацию виртуальной машины Java:
6.5.wide wide
6.5.dstore dstore
См. также:
  • Opcode.Kind.STORE

ASTORE_W

public static final Opcode ASTORE_W
Сохранение reference в локальную переменную (широкий индекс). Это псевдо-оператор, модифицированный с помощью широкого. Также может хранить тип returnAddress.
См. Спецификацию виртуальной машины Java:
6.5.wide wide
6.5.astore astore
См. также:
  • Opcode.Kind.STORE

RET_W

public static final Opcode RET_W
(Отменено) Возврат из подпрограммы (широкий индекс); последний раз использовался в версии 50 Java. Это псевдо-оператор, модифицированный с помощью широкого.
См. Спецификацию виртуальной машины Java:
4.9.1 Статические ограничения
6.5.wide wide
6.5.ret ret
См. также:
  • Opcode.Kind.DISCONTINUED_RET

IINC_W

public static final Opcode IINC_W
Инкремент локальной переменной на константу (широкий индекс). Это псевдо-оператор, модифицированный с помощью широкого.
См. Спецификацию виртуальной машины Java:
6.5.wide wide
6.5.iinc iinc
См. также:
  • Opcode.Kind.INCREMENT

Подробные сведения о методах

values

public static Opcode[] values()
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления.
Возвращает:
массив, содержащий константы этого класса перечисления в порядке их объявления

valueOf

public static Opcode valueOf(String name)
Возвращает константу перечисления этого класса с заданным именем. Строка должна точно совпадать с идентификатором, используемым для объявления константы перечисления в этом классе. (Дополнительные пробелы не допускаются.)
Параметры:
name - имя возвращаемой константы перечисления.
Возвращает:
константу перечисления с заданным именем
Исключения:
IllegalArgumentException - если в этом классе перечисления нет константы с указанным именем
NullPointerException - если аргумент имеет значение null

bytecode

public int bytecode()
Возвращает значение операционного кода. Для псевдо-операторов wide возвращает первые 2 байта инструкции, которые представляют собой широкое 196 (0xC4) и функциональный операционный код в виде значения U2.
Возвращает:
значение операционного кода

isWide

public boolean isWide()
Возвращает true, если это псевдо-операнд, изменённый операндом wide.

wide увеличивает индекс локальной переменной на дополнительные байты.

Возвращает:
true, если это псевдо-операнд, изменённый операндом wide
См. Спецификацию виртуальной машины Java:
6.5.wide wide
См. также:
  • ILOAD_W
  • LLOAD_W
  • FLOAD_W
  • DLOAD_W
  • ALOAD_W
  • ISTORE_W
  • LSTORE_W
  • FSTORE_W
  • DSTORE_W
  • ASTORE_W
  • RET_W
  • IINC_W

sizeIfFixed

public int sizeIfFixed()
Возвращает размер инструкции в байтах, если она фиксированная, иначе -1. Этот размер включает сам операнд.
Возвращает:
размер инструкции в байтах, если она фиксированная, иначе -1
См. также:
  • Instruction::sizeInBytes

kind

public Opcode.Kind kind()
Возвращает вид операции. Каждый вид операции имеет свой собственный интерфейс моделирования для моделирования инструкций, относящихся к этому виду.
Возвращает:
вид операции

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/classfile/Opcode.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API