2016-08-10 1 views
5

アプリケーションの作成にJavaを使用する理由を理解するために、この1つの点に固執しました。私はJavaに私を紹介したビデオを見て、JVMがあるのは、Javaを移植性のあるものにしているからです。つまり、異なるCPU OSコンボごとに新しいコンパイラを書く必要がなく、しかし、各CPUやOSと互換性を持たせるには何かをしなければならない。私は、JVMを使ってどのように変更するのか分かりません。JVMをCPUアーキテクチャ用のコンパイラとは異なるCPUアーキテクチャと互換性を持たせる方法を教えてください。

+0

「コンパイラは高価です」という文章は、何らかの意味を持つ必要があると思います。 –

+0

私はあなたが正しいと思う、私はそれを編集しました。 – BrettG

+2

それはビデオがとてもうまく説明しているようには聞こえません。 – juanchopanza

答えて

0

Javaの初期(ベータ版)バージョンはであり、 "一度だけ書き込み、すべての場所でテストする"という意味でとなっています。最初のプラットフォーム(SunOS/Solaris、Windows、Macなど)でのソフトウェアの品質を大幅に向上させることで、移植性が大幅に向上しました(携帯ソフトウェア携帯ソフトウェアは本質的に移植が容易です)。現在、Javaの複数の実装(IBM、JRockitなど)があります。

基本的に、Javaはバイトコードを実行する仮想マシンの仕様です。任意の特定の実施態様では、ではなく、である。バイトコードはプラットフォーム間で同じなので、新しいプラットフォームをサポートするためにJavaコンパイラを変更する必要はありません。さらに、OpenJDK(およびOracle JVM)の多くはJavaで書かれています。基本的にbootstrapping Javaは、「実際の」CPUアーキテクチャ用のコンパイラのブートストラップと比較して簡略化されていますnatively execute Java byte code CPUを除く

+0

私が間違っていると私を修正しますが、JVMはCまたはC++のいずれかで書かれている可能性が最も高いです。私はアーキテクチャ上でJVMを実行する必要があります。したがって、Java/JVMをアーキテクチャーやストレートC/C++で実行するかどうかは違いはありません。いずれにしても、アーキテクチャ用に書かれたC/C++コンパイラが必要です。 – BrettG

関連する問題