- 580 名前:デフォルトの名無しさん [2016/04/15(金) 16:38:15.26 ID:OdDIIck7.net]
- Javaバイトコードメモ(Hishidama's Java ByteCode Memo)
Javaのソースをコンパイルするとclassファイルが作られるが、その中身はバイトコードと呼ばれる中間形式。 JavaVMがそのバイトコードを解釈して実行する。 命令の例 変数に値を代入して加算する例。 int n = 123; int m = 3; int t = m + n; ↓ 0: bipush 123 ←123をスタックに入れる(PUSH) 2: istore_1 ←スタックから値を取り出し(POP)、ローカル変数1に入れる 3: iconst_3 ←定数3をスタックに入れる(PUSH) 4: istore_2 ←スタックから値を取り出し(POP)、ローカル変数2に入れる 5: iload_2 ←ローカル変数2をスタックに入れる(PUSH) 6: iload_1 ←ローカル変数1をスタックに入れる(PUSH) 7: iadd ←スタックから値を2つ取り出し(POP×2)、加算して結果をスタックに入れる(PUSH) 8: istore_3 ←スタックから値を取り出し、ローカル変数3に入れる www.ne.jp/asahi/hishidama/home/tech/java/bytecode.html JavaでJVM言語を作ってみる - バイトコード解析 - argius note argius.hatenablog.jp/entry/20120211/1328955653
|

|