Java コンパイラと Java 仮想マシンについて - パート 4
ここまで、Java の仕組みとコード構造、Java のクラス、メインメソッド、ループ制御について説明してきました。この記事では、Java コンパイラと Java 仮想マシンとは何かについて説明します。それらは何のためにあるのか、そしてその役割は何なのか。
Javaコンパイラとは何ですか
Java は厳密に型指定された言語であるため、変数には正しい種類のデータを保持する必要があります。厳密に型指定された言語では、変数は間違ったデータ型を保持できません。これは、Java プログラミング言語で非常によく実装された安全機能です。
Java コンパイラは、変数のデータ型保持における違反を徹底的にチェックします。 Java の動的バインディング機能には必須の、実行時にいくつかの例外が発生する場合があります。 Java プログラムが実行されると、以前は存在しなかった新しいオブジェクトが含まれる可能性があるため、ある程度の柔軟性を持たせるために、変数が保持できるデータ型にはいくつかの例外が許可されています。
Java コンパイラは、コメントを除いてコンパイルされないコード部分に対してフィルターを設定します。コンパイラはコメントを解析せず、そのままにしておきます。 Java コードは、プログラム内で 3 種類のコメントをサポートします。
1. /* COMMENT HERE */
2. /** DOCUMENTATION COMMENT HERE */
3. // COMMENT HERE
/* と */ または /** と */ の間、または の後に配置されるもの// は Java コンパイラによって無視されます。
Java コンパイラは、構文違反を厳密にチェックする責任があります。 Java コンパイラはバイトコード コンパイラとして設計されており、純粋にバイトコードで書かれた実際のプログラム ファイルからクラス ファイルを作成します。
Java コンパイラはセキュリティの最初の段階です。これは、変数内の不正なデータ型をチェックする最初の防御線です。データ型が間違っていると、プログラムおよびその外部に損傷を与える可能性があります。また、コンパイラは、プライベート クラスなどの制限されたコード部分を呼び出そうとしているコード部分がないかどうかもチェックします。コード/クラス/重要なデータへの不正アクセスを制限します。
Java コンパイラは、JVM の実行を必要とするプラットフォームおよびアーキテクチャ的に中立なバイトコード/クラス ファイルを生成し、文字通りあらゆるデバイス/プラットフォーム/アーキテクチャ上で実行されます。
Java仮想マシン(JVM)とは
Java 仮想マシンは、Java アプリケーションと OS の間に追加のレイヤーを置くセキュリティの次のラインです。また、不正な重要データへのアクセスを制限するために誰かがクラス ファイル/バイトコードを改ざんしたかどうか、Java コンパイラによってセキュリティ チェックおよびコンパイルが行われたクラス ファイルをチェックします。
Java 仮想マシンは、クラス ファイルをマシン言語にロードすることでバイトコードを解釈します。
JVM は、ロードとストア、算術計算、型変換、オブジェクトの作成、オブジェクトの操作、制御の転送、例外のスローなどの機能を担当します。
Java コンパイラがコードを calssfile/bytecodes にコンパイルし、Java 仮想マシンが classfile/bytecode を実行する Java の作業モデル。このモデルでは、コードが高速に実行され、追加のレイヤーによってセキュリティが確保されます。
それでは、Java コンパイラまたはJava 仮想マシンの方がより重要なタスクを実行すると思いますか? Java プログラムは、基本的に両方の表面 (コンパイラーと JVM) を介して実行する必要があります。
この投稿では、Java コンパイラーと JVM の役割をまとめます。皆様のご提案は以下のコメント欄でお待ちしております。次回の記事「Java のオブジェクト指向アプローチ」に取り組んでいます。それまでは、TecMint に接続してお待ちください。 「いいね!」とシェアして拡散にご協力ください。