java.lang.Object
java.lang.Enum < OpcodePREVIEW >
java.lang.classfile.Opcode
- すべての実装されたインタフェース:
Serializable
,Comparable<OpcodePREVIEW>
,Constable
Opcode
は、JavaプラットフォームのプレビューAPIです。
プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
6.5で説明されているように、JVM命令セットのopcodeについて説明します。 また、メソッドの命令のトラバース時に発生する可能性のある多数の擬似命令。
- 導入されたバージョン:
- 22
- 関連項目:
-
ネストされたクラスのサマリー
クラスjava.lang.Enumで宣言されたネストされたクラス/インタフェース
Enum.EnumDesc<E extends Enum<E>>
-
列挙型定数のサマリー
列挙型定数説明配列からの参照のロード参照配列に格納nullのプッシュローカル変数から参照をロードローカル変数0から参照をロードローカル変数1からの参照のロードローカル変数2からの参照のロードローカル変数3からの参照のロードローカル変数(ワイド・インデックス)からのロード参照参照の新しい配列を作成メソッドから参照を返す配列の長さを取得参照をローカル変数に格納参照をローカル変数0に格納参照をローカル変数1に格納参照をローカル変数2に格納参照をローカル変数3に格納参照をローカル変数(ワイド・インデックス)に格納します例外またはエラーのスロー配列からバイトをロードバイト配列に格納プッシュ・バイト配列から文字をロード文字配列に格納オブジェクトが指定されたタイプかどうかを確認しますdoubleをfloatに変換doubleをintに変換doubleをlongに変換doubleの追加配列からdoubleをロード二重配列に格納比較ダブル比較ダブル押し倍定数0押し倍定数1二重分割ローカル変数からdoubleをロードローカル変数0からdoubleをロードローカル変数1からdoubleをロードローカル変数2からdoubleをロードローカル変数3からdoubleをロードローカル変数(ワイド・インデックス)からdoubleをロードします倍数doubleを否定残り倍メソッドからdoubleを返すローカル変数にダブル格納ローカル変数0にdoubleを格納ローカル変数1にdoubleを格納ローカル変数2にdoubleを格納しますローカル変数3にdoubleを格納するローカル変数(ワイド・インデックス)にdoubleを格納します。二重の減算上部のオペランド・スタック値の複製上部のオペランド・スタック値を複製し、2つの値を下に挿入します。上部のオペランド・スタック値を複製し、2つまたは3つの値を下に挿入します。上位1つまたは2つのオペランド・スタック値の複製上位1つまたは2つのオペランド・スタック値を複製し、2つまたは3つの値を下に挿入します。上位1つまたは2つのオペランド・スタック値を複製し、2、3または4つの値を下に挿入します。floatをdoubleに変換するfloatをintに変換floatをlongに変換フロートの追加配列からfloatをロード浮動小数配列に格納floatの比較floatの比較プッシュ・フロート定数0プッシュ・フロート定数1プッシュ・フロート定数2浮動小数点の除算ローカル変数からフロートをロードローカル変数0からfloatをロードローカル変数1からフロートをロードローカル変数2からフロートをロードローカル変数3からフロートをロードローカル変数(ワイド・インデックス)からfloatをロードします乗算浮動小数点数浮動小数を否定残余フロートメソッドからfloatを返すfloatをローカル変数に格納floatをローカル変数0に格納しますfloatをローカル変数1に格納しますfloatをローカル変数2に格納しますfloatをローカル変数3に格納しますfloatをローカル変数(ワイド・インデックス)に格納します。浮動小数を減算オブジェクトからフィールドをフェッチクラスから静的フィールドを取得常に分岐ブランチは常に(ワイド・インデックス)intをbyteに変換intをcharに変換intをdoubleに変換intをfloatに変換intをlongに変換intをshortに変換intの追加配列から整数をロードブールAND整数int配列に格納プッシュ整数定数0プッシュ整数定数1プッシュ整数定数2プッシュ整数定数3プッシュ整数定数4プッシュ整数定数5プッシュ整数定数 -1整数を分割参照比較が成功した場合のブランチ参照比較が成功した場合のブランチint比較が成功した場合のブランチint比較が成功した場合のブランチint比較が成功した場合のブランチint比較が成功した場合のブランチint比較が成功した場合のブランチint比較が成功した場合のブランチゼロとのint比較が成功した場合のブランチゼロとのint比較が成功した場合のブランチゼロとのint比較が成功した場合のブランチゼロとのint比較が成功した場合のブランチゼロとのint比較が成功した場合のブランチゼロとのint比較が成功した場合のブランチ参照がnullでない場合は分岐参照がnullの場合は分岐ローカル変数を定数で増分ローカル変数を定数(ワイド・インデックス)で増分しますローカル変数からintをロードローカル変数0からintをロードローカル変数1からintをロードローカル変数2からintをロードローカルvariable3からintをロードしますローカル変数(ワイド・インデックス)からintをロードします乗算int整数を否定オブジェクトが特定のタイプかどうかの判断動的に計算されたコール・サイトを呼び出すインタフェース・メソッドの起動インスタンス・メソッドを呼び出します。現在のクラスとそのスーパータイプのインスタンス初期化メソッドとメソッドを直接呼び出します。クラス(static)メソッドの呼出しインスタンス・メソッドの起動、クラスに基づくディスパッチブールOR整数残余整数メソッドからintを返す左利きのシフト右利きのシフトintをローカル変数に格納intをローカル変数0に格納しますintをローカル変数1に格納しますintをローカル変数2に格納しますintをローカル変数3に格納しますintをローカル変数(ワイド・インデックス)に格納します減算整数論理シフト右整数ブールXOR intジャンプ・サブルーチンは廃止されましたopcodeジャンプ・サブルーチン(ワイド・インデックス)は廃止されましたlongからdoubleへの変換longをfloatに変換longからintへの変換longの追加配列からlongをロード長い配列に格納longの比較long定数0のプッシュlong定数1のプッシュ実行時定数プールからのアイテムのプッシュ実行時定数プールからのアイテムのプッシュ (ワイド・インデックス)実行時定数プール(ワイド・インデックス)からlongまたはdoubleをプッシュします長い分割ローカル変数から長いロードローカル変数0からlongをロードローカル変数1からlongをロードローカル変数2からlongをロードローカル変数3からlongをロードローカル変数(ワイド・インデックス)から長いロードlongを乗算longを否定キー一致およびジャンプによるジャンプ表へのアクセスブールOR long残りのlongメソッドからlongを返す左長にシフト右長にシフトlongをローカル変数に格納longをローカル変数0に格納longをローカル変数1に格納longをローカル変数2に格納longをローカル変数3に格納longをローカル変数(ワイド・インデックス)に格納します。longを減算論理シフト右長ブールXOR longオブジェクトのモニターの入力オブジェクトの終了モニター新規多次元配列の作成新規オブジェクトの作成新しい配列を作成意味なし上部のオペランド・スタック値をポップ上位1つまたは2つのオペランド・スタック値をポップオブジェクトにフィールドを設定クラスの静的フィールドの設定サブルーチンからの戻りは廃止されましたopcodeサブルーチンからの戻り値(ワイド・インデックス)は廃止されましたメソッドからvoidを返す配列からshortをロードshort配列に格納ショート・プッシュ上位2つのオペランド・スタック値を入れ替えます索引およびジャンプによるジャンプ表へのアクセス -
メソッドのサマリー
修飾子と型メソッド説明int
bytecode()
バイトコードを返します。定数命令の定数値を返します。それ以外の場合はnullを返します。boolean
命令が無条件ブランチを表す場合はtrueを返します。boolean
isWide()
命令に拡張ローカル変数インデックスが追加バイト数で存在する場合、trueを返します。kind()
instructionの種類を返します。少なくとも1つのタイプで動作する命令のプライマリ・タイプの種類、またはそれ以外の場合はnullを返します。2つの型で動作する命令のセカンダリ型のタイプを返します。それ以外の場合はnullを返します。int
固定されている場合は命令のサイズ、それ以外の場合は -1を返します。int
slot()
ローカル変数を操作する命令のローカル変数スロットを返します。それ以外の場合は -1を返します。指定された名前を持つこのクラスのenum定数を返します。values()
この列挙クラスの定数を含む配列を宣言されている順序で 返します。
-
列挙型定数の詳細
-
NOP
-
ACONST_NULL
-
ICONST_M1
-
ICONST_0
-
ICONST_1
-
ICONST_2
-
ICONST_3
-
ICONST_4
-
ICONST_5
-
LCONST_0
-
LCONST_1
-
FCONST_0
-
FCONST_1
-
FCONST_2
-
DCONST_0
-
DCONST_1
-
BIPUSH
-
SIPUSH
-
LDC
-
LDC_W
-
LDC2_W
-
ILOAD
-
LLOAD
-
FLOAD
-
DLOAD
-
ALOAD
-
ILOAD_0
-
ILOAD_1
-
ILOAD_2
-
ILOAD_3
-
LLOAD_0
-
LLOAD_1
-
LLOAD_2
-
LLOAD_3
-
FLOAD_0
-
FLOAD_1
-
FLOAD_2
-
FLOAD_3
-
DLOAD_0
-
DLOAD_1
-
DLOAD_2
-
DLOAD_3
-
ALOAD_0
-
ALOAD_1
-
ALOAD_2
-
ALOAD_3
-
IALOAD
-
LALOAD
-
FALOAD
-
DALOAD
-
AALOAD
-
BALOAD
-
CALOAD
-
SALOAD
-
ISTORE
-
LSTORE
-
FSTORE
-
DSTORE
-
ASTORE
-
ISTORE_0
-
ISTORE_1
-
ISTORE_2
-
ISTORE_3
-
LSTORE_0
-
LSTORE_1
-
LSTORE_2
-
LSTORE_3
-
FSTORE_0
-
FSTORE_1
-
FSTORE_2
-
FSTORE_3
-
DSTORE_0
-
DSTORE_1
-
DSTORE_2
-
DSTORE_3
-
ASTORE_0
-
ASTORE_1
-
ASTORE_2
-
ASTORE_3
-
IASTORE
-
LASTORE
-
FASTORE
-
DASTORE
-
AASTORE
-
BASTORE
-
CASTORE
-
SASTORE
-
POP
-
POP2
-
DUP
-
DUP_X1
-
DUP_X2
-
DUP2
-
DUP2_X1
-
DUP2_X2
-
SWAP
-
IADD
-
LADD
-
FADD
-
DADD
-
ISUB
-
LSUB
-
FSUB
-
DSUB
-
IMUL
-
LMUL
-
FMUL
-
DMUL
-
IDIV
-
LDIV
-
FDIV
-
DDIV
-
IREM
-
LREM
-
FREM
-
DREM
-
INEG
-
LNEG
-
FNEG
-
DNEG
-
ISHL
-
LSHL
-
ISHR
-
LSHR
-
IUSHR
-
LUSHR
-
IAND
-
LAND
-
IOR
-
LOR
-
IXOR
-
LXOR
-
IINC
-
I2L
-
I2F
-
I2D
-
L2I
-
L2F
-
L2D
-
F2I
-
F2L
-
F2D
-
D2I
-
D2L
-
D2F
-
I2B
-
I2C
-
I2S
-
LCMP
-
FCMPL
-
FCMPG
-
DCMPL
-
DCMPG
-
IFEQ
-
IFNE
-
IFLT
-
IFGE
-
IFGT
-
IFLE
-
IF_ICMPEQ
-
IF_ICMPNE
-
IF_ICMPLT
-
IF_ICMPGE
-
IF_ICMPGT
-
IF_ICMPLE
-
IF_ACMPEQ
-
IF_ACMPNE
-
GOTO
-
JSR
-
RET
-
TABLESWITCH
-
LOOKUPSWITCH
-
IRETURN
-
LRETURN
-
FRETURN
-
DRETURN
-
ARETURN
-
RETURN
-
GETSTATIC
-
PUTSTATIC
-
GETFIELD
-
PUTFIELD
-
INVOKEVIRTUAL
-
INVOKESPECIAL
-
INVOKESTATIC
-
INVOKEINTERFACE
-
INVOKEDYNAMIC
-
NEW
-
NEWARRAY
-
ANEWARRAY
-
ARRAYLENGTH
-
ATHROW
-
CHECKCAST
-
INSTANCEOF
-
MONITORENTER
-
MONITOREXIT
-
MULTIANEWARRAY
-
IFNULL
-
IFNONNULL
-
GOTO_W
-
JSR_W
-
ILOAD_W
-
LLOAD_W
-
FLOAD_W
-
DLOAD_W
-
ALOAD_W
-
ISTORE_W
-
LSTORE_W
-
FSTORE_W
-
DSTORE_W
-
ASTORE_W
-
RET_W
-
IINC_W
-
-
メソッドの詳細
-
values
-
valueOf
指定された名前を持つこのクラスのenum定数を返します。 文字列は、このクラスでenum定数を宣言するために使用される識別子と正確に一致する必要があります。 (不適切な空白文字は許可されません。)- パラメータ:
name
- 返される列挙型定数の名前。- 戻り値:
- 指定された名前を持つ列挙型定数
- 例外:
IllegalArgumentException
- この列挙型クラスに指定された名前の定数がない場合NullPointerException
- 引数がnullの場合
-
bytecode
public int bytecode()バイトコードを返します。- 戻り値:
- バイトコード
-
isWide
public boolean isWide()命令に拡張ローカル変数インデックスが追加バイト数で存在する場合、trueを返します。- 戻り値:
- 命令に拡張ローカル変数インデックスが追加バイト数で存在する場合はtrue
-
sizeIfFixed
public int sizeIfFixed()固定されている場合は命令のサイズ、それ以外の場合は -1を返します。- 戻り値:
- 固定されている場合は命令のサイズ、それ以外の場合は -1
-
kind
-
-
secondaryTypeKind
-
slot
public int slot()ローカル変数を操作する命令のローカル変数スロットを返します。それ以外の場合は -1を返します。- 戻り値:
- ローカル変数を使用して動作する命令のローカル変数スロット。それ以外の場合は -1
-
constantValue
-
isUnconditionalBranch
public boolean isUnconditionalBranch()命令が無条件ブランチを表す場合はtrueを返します。- 戻り値:
- 命令が無条件ブランチを表す場合はtrue
-
Opcode
を使用できます。