• ベストアンサー

オブジェクトコードについて

コンパイル言語について質問です。 コンパイルされるタイミングはいつなのでしょうか? 現在javaでwebアプリを作成中なのですが、 tomcatに置いたタイミングでclassファイルがオブジェクトコードにコンパイルされているのでしょうか。 それとも、リクエストが来てそのクラスが必要になったときでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • _kappe_
  • ベストアンサー率68% (1581/2304)
回答No.2

「オブジェクトコード」の意味が曖昧なので的外れな回答かもしれません。 1.javaファイルからclassファイルへの変換も「コンパイル」です。classファイルの中にはバイトコードという命令が格納されています。 2-1.classファイルに格納されたバイトコードはJavaインタープリターによって実行されます。 2-2.インタープリターによる実行は遅いので、一部のJavaメソッドはCPUが直接実行できる機械語にコンパイルされます。"そのクラスが必要になったとき"ではなくて、"あるメソッドを機械語にコンパイルしたほうがいいと判断したとき"にコンパイルします。クラスの中の全メソッドがコンパイルされるのではなく、コンパイルされなかったメソッドは引き続きインタープリターによって実行されます。 2-3.今は廃れてしまいましたが、一部のCPUにはJavaバイトコードを直接実行できる機能がありました。この場合は2-2.のコンパイルは不要でした。

その他の回答 (1)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.1

javaでは、classファイルの中身がオブジェクトコードそのものですけど。 もしかしてCPUが直接実行できるネイティブコードの事をいわれていますか?

madosel15
質問者

補足

語句が曖昧で申し訳ありません。 ネイティブコードのことです。。

関連するQ&A

専門家に質問してみよう