こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2020-09-21 16:57:38

QNo.9802181

困ってます

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

「オブジェクトコード」の意味が曖昧なので的外れな回答かもしれません。

1.javaファイルからclassファイルへの変換も「コンパイル」です。classファイルの中にはバイトコードという命令が格納されています。

2-1.classファイルに格納されたバイトコードはJavaインタープリターによって実行されます。

2-2.インタープリターによる実行は遅いので、一部のJavaメソッドはCPUが直接実行できる機械語にコンパイルされます。"そのクラスが必要になったとき"ではなくて、"あるメソッドを機械語にコンパイルしたほうがいいと判断したとき"にコンパイルします。クラスの中の全メソッドがコンパイルされるのではなく、コンパイルされなかったメソッドは引き続きインタープリターによって実行されます。

2-3.今は廃れてしまいましたが、一部のCPUにはJavaバイトコードを直接実行できる機能がありました。この場合は2-2.のコンパイルは不要でした。

投稿日時 - 2020-09-21 18:22:42

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

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

投稿日時 - 2020-09-21 18:20:46

補足

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

投稿日時 - 2020-09-21 18:56:41

あなたにオススメの質問