Javaの操作機構
Javaは、両方のコンパイル言語であるインタプリタ言語です。
最初の二つの言語のための特性や運用のメカニズムを見つけることができます。
コンパイル言語と解釈された言語の違い
コンパイル言語
それは何をしてコンパイルされていますか?情報を探していることで、おそらく特定のプラットフォームのための特別なコンパイラを使用すると、1回ハイレベル言語のソースコードになりますプラットフォームとその実装することができ、マシンコードに「変換」、およびプラットフォームによって認識できる実行可能プログラムにパッケージ化フォーマット。PS:コンピュータが読み取ることができない、もちろん我々はコードをノックする必要があります。
インタプリタ言語
各実行の前に、我々は再びそれを説明する必要があり、あること、すぐに実行するのに必要なマシンコードとプラットフォームにソースコードを解釈するために、特別なインタプリタによって説明されます。
両者の違いの内訳
- コンパイルされた実行可能プログラムは、開発環境を取り外すことができる(ただし、別のプラットフォームに移動したい場合は、追加のコピープラットフォーム、および再コンパイルをソースにする必要があります)、およびインタプリタ言語のプログラムは、インタプリタから独立して実行することはできませんが、クロスプラットフォーム簡単。
- シニアプログラムは、例えば、機械語ファイルにコンパイルされた前ので、非常に高速であるコンパイル言語の実行速度は、
windows下的exe文件
実行可能ファイルを実行するときに、再コンパイルが、直接実行する必要はありません。インタプリタ言語でするたびに書かれたプログラムは、我々は一度変換する必要があり、効率が低いです。 - コンパイルされたプログラムは、メモリの任意の領域にアクセスし、安全性の低い、そしてもちろん非常に親密な、この分野で非常に安全に解釈することができます。
- コンパイルされたプログラムは、コンパイラを実行する前に、少しの間を解釈よりも少ないメモリが最初に関連するインタプリタを開く必要がありますし、コードの最適化、セキュリティチェック、リソース消費の多くになり、メモリを取る消費を実行します。
- しかし、本当にハードにコンパイルされたコードは一生懸命、C言語では、すべての後に、インテリジェントインタプリタは、あなたは私が何を意味するか知っている一方で、コンパイル言語の典型的なものです。
C、C ++、Objective-Cの、パスカルや他の高レベルの言語は、言語をコンパイルしています。
ルビー、Pythonや他の言語は、言語を解釈しています。
そして、Javaは、非常に奇妙な本当に奇妙な、そしてコンパイルされ、解釈されています。
Javaの奇妙な場所
Javaコンパイラ
Javaコンパイラは、プラットフォーム固有のマシンコードを生成しますが、あるプラットフォームに依存しないバイトコード、しません.class
ファイル。
Javaの解釈
.class
Java仮想マシンによるファイルは、JVMにそのマシンコード(Java仮想マシン)は解釈の過程で実行に翻訳しました。
特定のメカニズム
バイトコードコンパイラ生成プラットフォームは顔をしませんが、異なるプラットフォームが必要にバイトコードにスイッチとしてJVM、JVMは、翻訳された後に、これがで反射されるクロスプラットフォームのJavaの核心です。
ショー以下のJavaプログラムのステップ実行:
JDK(Javaランタイム環境)を提供
javac.exe
の準備のため.java
のファイルは、バイトコードファイルを形成し、するようにコンパイルされJava.exe
たJavaクラスファイルをロードし、徐々にコンパイルされたファイルのバイトコード。この謝辞には: