Javaメモ > Javaバイトコードの読み方
Javaバイトコードの読み方 †
バイトコードの確認方法 †
バイトコードは javap コマンドで確認できる。
例)Hoge.class の内容を確認する場合
javap -c -p -l Hoge
バイトコードが示す命令の内容 †
命令 | 行われる処理 | 補足 |
ldc | コンスタントプール内の定数をスタックに積む | |
load | 局所変数から値 または 参照値を取り出してスタックに積む | |
store | 値 または 参照値を局所変数に格納する | |
new | インスタンスの生成 | |
ret | サブルーチンから呼び出し元の戻り番地に制御を移す | |
invokevirtual | インスタンスメソッドを呼び出す | |
invokespecial | インスタンス初期化メソッド、プライベートメソッド、スーパークラスのインスタンスメソッドを呼び出す | |
invokestatic | クラスメソッドを呼び出す | |
invokeinterface | インターフェイスメソッドを呼び出す | |
return | スタックに値を残さずに呼び出し元の戻り番地に制御を移す | 戻り値がない(void)メソッドの最後に行われる |
ireturn lreturn freturn dreturn areturn | スタックに値を残してサブルーチンの呼び出し元の戻り番地に制御を移す | 戻り値のあるメソッドの最後に行われる |
putfield | メンバ変数への値の代入 | |
getfield | メンバ変数から値の取り出し | |