「Javaのプログラムはどうやって動いているの?」を試してみた
【初学者向け】JJUG ナイトセミナ 「Javaのプログラムはどうやって動いているの?」
https://www.youtube.com/watch?t=23&v=QNJBcrSayME
これを実際に試してみた。
javap を使ってバイトコードの逆アセンブルをする。
javap –p –c クラス名
とすると–p オプションで private メソッドも対象になる。-c オプションを付けるとバイトコードも出力される。
やってみた。
add() メソッドは動画で詳しく説明されていたので良く解る。
これでお終いではちょっとさみしいので Java 8 から導入されたインタフェースのデフォルトメソッドを使うようにプログラムを変更してみる。
Java 7 まではインタフェースにメソッドの実装は許されてなかった。
Java 8 からは default メソッドとして可能となりました。
いったいどうなっているのでしょうか?
javap で覗いてみることにします。今度は –v オプションを使ってバイトコードと定数プールも出力させてみます。
この結果から解るようにインタフェース側にメソッドの実装がされています。
おもしろいですね!
しかし、部分的にバイトコードを知ることができたのですがまだまだ解らないことだらけなので次回開催を楽しみに待ってます。
TAGS: Java | 2015年4月25日2:13 PM
Trackback URL