世間話:Javaバイトコードで

バイトコードで言語とコンパイル言語を解釈しているもので、私たちの最初の表情を見て前に。

図1は、言語及びコンパイルされた言語を解釈しました

        私たちのコンピュータが直接がある場合、それは唯一、機械語(バイナリ列01)で理解することができ、高レベルの言語を理解することはできません翻訳が、実際には、一般的にアセンブリ言語に高レベルの言語に変換した後、機械語にアセンブリ命令によって変換されました。ここだ翻訳は、一般的に二つの方法が記載されています解釈とコンパイル。

       インタプリタ言語:ここに執行メカニズムが通訳を完了することで、ここでチャンスを翻訳するには、することです実行ここでは、彼の党(機械語に翻訳)1行の説明があります。ここでインタプリタを説明した後に形成されている中間コード(インタプリタは、プラットフォームに依存しない中間コードに翻訳されるときに、ソースコードが実行されます)。この中間コードは、良いクロスプラットフォームを持っていますが、あなたは、ソースコードを実行する必要があるたびに、低効率ながら、例えば、だと言うの.classファイルをしましょう。Linuxシステムとは、再勝利システムを実行することができますすることができます。

      コンパイル言語:あなたがここにコードをコンパイルする必要があるすべては、その後、生成したバイナリファイルをこのようなC言語生成.exeファイルなどのプログラムを実行した後に再コンパイルコードを必要としない、一度、ここだけ、あなたはそれを生成する必要があります。利点は以下のとおりです。提供されていない永続的な実行、ソースコードの必要性をコンパイルします。

2、Javaの言語機能

       特長Java言語は、それが実際に半半コンパイルインタープリタ言語であるということです。これは、実行前にコンパイルされたバイトコードファイルを生成します。解釈のプロセスを実行した後、バイナリマシン言語インタプリタを生成するために、行ずつ行います。

     バイトコードにコンパイル:ある程度、従来のインタプリタ言語の問題の低い効率を解決します。

     バイトコードインタプリタは:バイトコードを特定のマシンに向けられていないので、移植特性を保持します。

 

3、JITコンパイラ

        このステップJVMクラスローダーの最初のバイト・コード・ファイルをロードするために、インタプリタにより行ずつ解釈し、このように実行速度が比較的遅いであろう。また、いくつかの方法やコードブロックは、(コードのいわゆるホットスポット)が頻繁に呼び出される必要があるので、JITコンパイラの導入の裏、および実行時のJITコンパイラ属します。マシンコードに対応するバイトコードを保存する第JITコンパイラコンパイラの完了後、次を直接使用することができます。そして、我々はマシンコードの動作効率がJavaインタプリタよりも確実に高くなっていることを知っています。これはまた、我々は、多くの場合、Javaがコンパイルされ、言語が共存して解釈されると言う理由を説明します。

 

 

公開された134元の記事 ウォン称賛91 ビュー160 000 +

おすすめ

転載: blog.csdn.net/weixin_44588495/article/details/104081190