Spec-Zone.ru › OpenJDK 25

Класс перечисления 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>

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

Константа перечисления Описание
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, если это псевдокод операции, модифицированный широким кодом операции.
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

Методы, объявленные в классе 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

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 Virtual Machine Specification:
6.5.ifnonnull ifnonnull
См. также:
  • Opcode.Kind.BRANCH

GOTO_W

public static final Opcode GOTO_W
Безусловный переход (расширенный индекс).
См. Java Virtual Machine Specification:
6.5.goto_w goto_w
См. также:
  • Opcode.Kind.BRANCH

JSR_W

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

ILOAD_W

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

LLOAD_W

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

FLOAD_W

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

DLOAD_W

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

ALOAD_W

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

ISTORE_W

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

LSTORE_W

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

FSTORE_W

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

DSTORE_W

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

ASTORE_W

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

RET_W

public static final Opcode RET_W
(Не используется) Возврат из подпрограммы (расширенный индекс); в последний раз использовался в старшей версии 50. Это псевдоопкод, модифицированный опкодом wide.
См. Java Virtual Machine Specification:
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 Virtual Machine Specification:
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 Virtual Machine Specification:
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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/classfile/Opcode.html

Spec-Zone.ru

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