QTクロスプラットフォームとJava

私たちは、基本的にQTは、クロスプラットフォームである知っている、Javaはクロスプラットフォームである、そして我々は彼ら二人の話に今日行きます。

同じポイント:それはクロスプラットフォームであります

違いは:Javaは、仮想マシン上で実行してコンパイルし、仮想マシンで1回程度実行するように構築されていますが、仮想マシンは、コード形式の統一を実行し、多様なプラットフォームです。

    Qtの実行中のプログラムはQtのフレームワーク、どこにでもコーディング、コンパイルに基づいていますが、フレームワークは、多様な、統一されたプログラミング・インタフェースのためのプラットフォームです。

 

詳細:

Javaは、クロスプラットフォームです。しかし、達成するための技術的な観点から、それはQtのよりも簡単です。Javaは、異なるプラットフォームおよびオペレーティング・システムのコアコードを横切るシステムの抽象アウトである、よく知られたJava仮想マシンであるJVMの別個の層(Java仮想マシン)を形成します。JVM、クロスプラットフォームの設計のためのJava言語のフレームワーク上で動作が異なるプラットフォーム、シンプル、論理的、簡単に実装するために(自分自身、スイッチケースの構造で、C言語のような感じ、Linux上で問題にJVMを分解していることをJavaコードどのような構造、窓ますか)。何らかの制限Java言語の設計自体は、プラットフォームに依存しており、一般的なプログラミング言語の設計に集中することができます。限りJVMの異なるカテゴリの適切なプラットフォームとして、コードは、クロスプラットフォームであることができます。
もちろん、Javaはまた、運用効率の料金を支払いました。直接オペレーティングシステムを介してCPUによって実行される一般的なプログラムとする必要があるため、再マッピング多段階プロセスを実行するために、オペレーティングシステムにJVMを介してJava言語を、そして最終的にはCPUによって実行されます。初期のJava言語は、主に、さらに低下運転効率が得られ、解釈のコンパイラを使用しているため。しかし、ハードウェアの計算速度を向上大幅にタイムコンパイラ技術(JIT)として特に導入、Javaの動作効率の問題が解決されます。
Qtのプラットフォーム抽象化層が大幅に異なるプラットフォーム、APIなどの基礎となるライブラリをカプセル化する同様のJVM(しかし、同様の原理を、使用していないが、これらは上位パッケージによって作られており、開発者は様々なプラットフォームを操作していますインターフェイスは、)は、Java以上に開発プロセスの枠組みの中で、プラットフォームの問題の処理の複雑さと同じです。
異なるプラットフォームスケジューリング、メッセージ管理、文書処理および他のオペレーティングシステムカーネルモジュールと互換性のあるクロスプラットフォームのプログラミングスケジュールに困難。従来、クロスプラットフォームのプログラミングフレームワークの開発ならば、あなたは抽象的原則に必要なすべてを理解し、サポートプラットフォームのコアモジュールを備え、その後、負荷の増加によって提供される各機能のAPIのために実現されました。コアモジュールのために、本実施形態の使用、異なるユーザの開発のための異なるプラットフォームに対応するパッケージ(異なるオペレーティングシステムQTパケットことは不思議が存在しないため)、及びQTを簡略化された抽象化、より上のQTすべてのプラットフォームと互換性の小さな価格。
メッセージ管理は、例えば、Windowsメッセージ管理が広く時間関数に分割されているメッセージを生成し、対象イベント機能に配信されたメッセージは、目的関数は、メッセージを3つのステップを処理します。QTメッセージ管理プロセスが、ステップ2に、従来の還元工程3の信号/スロット機構を使用し、イベント生成機能(信号)によって接続機能は、対象のイベントハンドラ(溝)に直接接続されています。イベント処理は、シンプルで効果的な、オペレーティングシステムのすべてのバージョンと互換性の実装が容易です。

 

QTクロスプラットフォームの原則

そして、Javaは、各OSプラットフォーム用として、QTは、基礎となるライブラリーを対応のセットがあり、インターフェイスは完全に一致しています。
だから、長いいずれかのプラットフォーム上で開発されたQTライブラリ上のプログラムをコンパイルして実行できるよう(という条件で:プログラムは、OS固有の機能を使用していない、あなたはプラットフォームにQTをインストールする必要があります)。OSとアプリケーション層の間にあること、層は移植性を確保するためのプラットフォームを追加します。
Qtは、クロスプラットフォーム、クロスプラットフォームのコードではなく、(Javaのjarファイルのパッケージとは異なる)プラットフォーム間でコンパイルされたファイルを指し、同じコードを別のプラットフォーム上に置く必要があり、再コンパイルする必要があります。
 
 
これは私の個人的な意見と他人の採用要約であり、そして私はそれが実際の開発であるか、またはインタビューが参考になるかどうか、追加したいと考えています。

おすすめ

転載: www.cnblogs.com/xupeidong/p/12291484.html