Spec-Zone.ru › OpenJDK 27

Перечисление 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
Виды кодов операций.

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

Enum.EnumDesc<E>
Модификатор и тип Класс Описание
static final class  Enum.EnumDesc<E extends Enum<E>>
Номинальный дескриптор константы enum.

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

Константа перечисления Описание
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 1.0F.
FCONST_2
Поместить в стек константу float 2.0F.
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
Выполнить побитовое исключающее ИЛИ для значений 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
Побитовое исключающее ИЛИ 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()
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления.

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

clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
Модификатор и тип Метод Описание
protected final Object clone()
Выбрасывает CloneNotSupportedException.
final int compareTo(Opcode o)
Сравнивает это перечисление с указанным объектом, определяя порядок.
final Optional<Enum.EnumDesc<Opcode>> describeConstable()
Возвращает дескриптор перечисления EnumDesc для этого экземпляра, если его можно создать, или пустой объект Optional, если создать его невозможно.
final boolean equals(Object other)
Возвращает true, если указанный объект равен этой константе перечисления.
protected final void finalize()
Устарело и будет удалено: этот элемент API может быть удален в будущей версии.
Финализация признана устаревшей и будет удалена.
final Class<Opcode> getDeclaringClass()
Возвращает объект Class, соответствующий типу перечисления этой константы перечисления.
final int hashCode()
Возвращает хеш-код этой константы перечисления.
final String name()
Возвращает имя этой константы перечисления в точности в том виде, в котором оно указано в объявлении перечисления.
final int ordinal()
Возвращает порядковый номер этой константы перечисления (её позицию в объявлении перечисления; первой константе присваивается номер 0).
String toString()
Возвращает имя этой константы перечисления в том виде, в котором оно указано в объявлении.
static <T extends Enum<T>>
T
valueOf(Class<T> enumClass, String name)
Возвращает константу указанного класса перечисления с указанным именем.

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

getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

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

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

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

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:
6.5.dup_x1 dup_x1
См. также:
  • Opcode.Kind.STACK

DUP_X2

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

DUP2

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

DUP2_X1

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

DUP2_X2

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

SWAP

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

IADD

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

LADD

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

FADD

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

DADD

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

ISUB

public static final Opcode ISUB
Вычитание int.
См. Спецификация виртуальной машины Java:
6.5.isub isub
См. также:
  • Opcode.Kind.OPERATOR

LSUB

public static final Opcode LSUB
Вычитание long.
См. Спецификация виртуальной машины Java:
6.5.lsub lsub
См. также:
  • Opcode.Kind.OPERATOR

FSUB

public static final Opcode FSUB
Вычитание float.
См. Спецификация виртуальной машины Java:
6.5.fsub fsub
См. также:
  • Opcode.Kind.OPERATOR

DSUB

public static final Opcode DSUB
Вычитание double.
См. Спецификация виртуальной машины Java:
6.5.dsub dsub
См. также:
  • Opcode.Kind.OPERATOR

IMUL

public static final Opcode IMUL
Умножение int.
См. Спецификация виртуальной машины Java:
6.5.imul imul
См. также:
  • Opcode.Kind.OPERATOR

LMUL

public static final Opcode LMUL
Умножение long.
См. Спецификация виртуальной машины Java:
6.5.lmul lmul
См. также:
  • Opcode.Kind.OPERATOR

FMUL

public static final Opcode FMUL
Умножение float.
См. Спецификация виртуальной машины Java:
6.5.fmul fmul
См. также:
  • Opcode.Kind.OPERATOR

DMUL

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

IDIV

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

LDIV

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

FDIV

public static final Opcode FDIV
Деление float.
См. Спецификация виртуальной машины Java:
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
Побитовое исключающее ИЛИ 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:
5.1.2 Расширяющее преобразование примитивных типов
См. Спецификация виртуальной машины 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
Получить static поле класса.
См. Спецификацию виртуальной машины Java:
6.5.getstatic getstatic
См. также:
  • Opcode.Kind.FIELD_ACCESS

PUTSTATIC

public static final Opcode PUTSTATIC
Установить static поле класса.
См. Спецификацию виртуальной машины 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 из локальной переменной (широкий индекс). Это псевдоопкод, модифицированный wide.
См. Спецификацию виртуальной машины Java:
6.5.wide wide
6.5.iload iload
См. также:
  • Opcode.Kind.LOAD

LLOAD_W

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

FLOAD_W

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

DLOAD_W

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

ALOAD_W

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

ISTORE_W

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

LSTORE_W

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

FSTORE_W

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

DSTORE_W

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

ASTORE_W

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

RET_W

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

IINC_W

public static final Opcode IINC_W
Увеличить значение локальной переменной на константу (широкий индекс). Это псевдоопкод, модифицированный wide.
См. Спецификацию виртуальной машины 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 байта инструкции — опкод wide 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()
Возвращает вид операции. Для каждого вида операции предусмотрен собственный интерфейс моделирования, предназначенный для моделирования инструкций этого вида.
Возвращает:
вид операции

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, где представлены более подробные описания для разработчиков, содержащие общие сведения, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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