ホームページ >Java >&#&はじめる >Javaコードがマシンによってどのように認識されるか

Javaコードがマシンによってどのように認識されるか

王林
王林オリジナル
2020-02-01 20:09:583013ブラウズ

Javaコードがマシンによってどのように認識されるか

Java コードはマシンによってどのように認識されるのでしょうか?

まず、高級プログラミング言語である Java の構文は非常に複雑なので、Java コードをマシンに直接投げると、マシンは Java コードを認識できません。したがって、Java 言語の場合は、まずコンパイラを使用して Java ソース コード (.java ファイル) をバイトコード ファイル (.class ファイル) にコンパイルし、次に仮想マシン (JVM) を使用してバイトコードをマシン コードに変換します。そして最終的に、マシンコードがマシンによって認識され、実行されるようになります。

下の図をご覧ください:

Javaコードがマシンによってどのように認識されるか

(推奨される無料の学習ビデオ チュートリアル: java ビデオ チュートリアル)

# #説明は次のとおりです:

実際には、JVM はバイトコード ファイルを直接実行できません。JVM は、対応するコード ロジックを実行する前に、バイトコードをマシン コードに変換する必要があります。 HotSpot 仮想マシンでは、2 つの変換形式があります。1 つ目は解釈と実行、つまりバイトコードを 1 つずつマシンコードに変換して実行します。2 つ目は、ジャストインタイム コンパイル (JIT) です。メソッドに含まれるすべてのバイトコードは、実行前にマシンコードにコンパイルされます。どちらの方法にも独自の長所と短所があります。

実行を解釈する利点は、コンパイルを待たずにすぐに実行できることです。ジャストインタイム コンパイルの利点は、実際に高速に実行されることです。 HotSpot 仮想マシンはデフォルトでハイブリッド モードを採用しており、解釈された実行とジャストインタイム コンパイルの利点を組み合わせています。まずバイトコードを解釈して実行し、次にメソッド単位で繰り返し実行されるホットスポット コードをオンザフライでコンパイルします。

Java 仮想マシンが Java バイトコードを実行すると、まずバイトコード ファイルがメモリにロードされ、次にロードされた Java クラスがメソッド領域 (メソッド領域) に格納されます。実際に仮想マシンを実行する場合、仮想マシンはメソッド領域のコードを実行します。

実行プロセス中、Java メソッドが入力されるたびに、Java 仮想マシンは現在のスレッドの Java メソッド スタックにスタック フレームを生成し、ローカル変数とバイトコード オペランドを格納します。現在の実行メソッドを終了するとき、正常な戻りか異常な戻りかに関係なく、Java 仮想マシンは現在のスレッドの現在のスタック フレームをポップアップして破棄します。

おすすめの関連記事とチュートリアル:

Java 入門チュートリアル

以上がJavaコードがマシンによってどのように認識されるかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。