との差 C++ Java
の主な違い C++ Java
- C++ コンパイラのみを使用するのに対し、 Java コンパイラとインタープリタの両方を使用します。
- C++ 演算子オーバーロードとメソッドオーバーロードの両方をサポートしていますが、 Java メソッドのオーバーロードのみをサポートします。
- C++ 新規および削除キーワードの助けを借りて手動でのオブジェクト管理をサポートしますが、 Java 自動ガベージコレクションが組み込まれています。
- C++ 構造をサポートする一方、 Java 構造をサポートしていません。
- C++ 労働組合を支持しながら Java 労働組合をサポートしません。

何ですか C++ 言語?
C++ C プログラミング言語と Simula67 (最初のオブジェクト指向言語) の機能を備えたコンピュータ プログラミング言語です。 C++ クラスとオブジェクトの概念を導入しました。
これは、高レベルおよび低レベルの言語機能をカプセル化します。 したがって、それは中級レベルの言語とみなされます。 以前は、C 言語のすべてのプロパティを備えていたため、「クラス付き C」と呼ばれていました。
何ですか Java 言語?
Java サン・マイクロシステムズが開発したプログラミング言語です。この言語は小さなソフトウェア開発チームによって開発されました。彼らはグリーンチームと呼ばれ、 Java 1991 年の言語。
の歴史 C++
C++ 言語はAT&Tベル研究所のビャーネ・ストロストルプによって開発されました。ストロストルプはC言語の強力な支持者であり、Simula67の崇拝者でもありました。彼は両方の言語の長所を組み合わせようとしました。彼はオブジェクト指向プログラミング機能をサポートし、C言語のパワーを維持した言語を作成することを目指していました。その結果、 C++.
の歴史 Java
当学校区の Java 言語は当初OAKと呼ばれていました。もともとはデバイスやセットトップボックスを扱うために開発されました。Oakは大失敗でした。そのため、1995年にSunは名前を Java そして、急成長するワールドワイドウェブ開発ビジネスを活用できるように言語を修正しました。
Later、2009で、 Oracle Corporation は Sun Microsystems を買収し、2 つの重要な Sun ソフトウェア資産の所有権を取得しました。 Java Solaris.
との差 C++ Java
C++ | Java | |
---|---|---|
関係 | クラス名とファイル名の間に厳密な関係はありません。 C++特定のクラスには、ヘッダー ファイルと実装ファイルが使用されます。 | たとえば、PayRoll クラスのソース コードは PayRoll.java 内にある必要があります。 |
入力機構 | I/O ステートメントでは in と cout を使用します (例: in » x;)。 cout« y; | I/O 入力メカニズムは、一度に 1 バイト (System.in) を読み取るため、非常に複雑です。出力は簡単です (例: System.out.println(x);)。 |
コンパイラーとインタープリター | C++ コンパイラのみサポート | Java コンパイラとインタープリタの両方をサポート |
他の言語との互換性 | 一部の例外を除き、C ソース コードと互換性があります。 | 以前の言語との下位互換性はありません。構文はC/の影響を受けています。C++. |
アクセス制御とオブジェクト保護 | 常時保護を備えた柔軟なモデルが利用可能 | 扱いにくいモデルは弱いカプセル化を助長します。 |
概念 | 一度書いたらどこでもコンパイル | 一度書くとどこでも実行 |
プログラミングタイプのサポート | 手続き型プログラミングとオブジェクト指向プログラミングの両方を可能にします。 | オブジェクト指向プログラミングモデルをサポートします。 |
インタフェース | ネイティブ システム ライブラリへの直接呼び出しを許可します。 | 通話は Java ネイティブインターフェースと最近 Java ネイティブアクセス |
メモリ管理 | プログラマーにアクセス可能 | システム制御 |
ルート階層 | C++ そのようなルート階層は存在しません。 C++ 手続き型プログラミングとオブジェクト指向プログラミングの両方をサポートしているため、ハイブリッド言語と呼ばれます。 | Java 純粋なオブジェクト指向プログラミング言語です。それが、単一のルート階層に従う理由です。 |
最高の機能 | C++ オブジェクト指向機能と手続き型プログラミング機能をサポートします。 | Java 自動ガベージコレクションをサポートします。デストラクタはサポートしていません。 C++ ありません。 |
後藤文 | C++ goto ステートメントがあります。ただし、goto ステートメントを使用することは理想的ではありません。 | Java goto ステートメントがありません。キーワード got および const は、使用されていない場合でも予約されています。 |
多重継承 | C++ 多重継承を提供します。キーワード virtual は、多重継承中に問題が発生した場合にそれを解決するために使用されます。 | Java 多重継承は提供されません。 |
スコープ解決演算子 | C++ スコープ解決演算子を持つ (: :) これは、クラスの外でメソッドを定義し、同じ名前のローカル変数も存在するスコープからグローバル変数にアクセスするために使用されます。 |
スコープ解決演算子なし (: :) in Javaメソッド定義はクラス内で行われる必要があるため、スコープ解決は必要ありません。 |
支援方法 | C++ メソッドオーバーロードと演算子オーバーロードの両方をサポート | Java メソッドのオーバーロードのみをサポートします。演算子のオーバーロードはサポートされません。 |
携帯性 | プラットフォーム用にソースを再コンパイルする必要があります。 したがって、コードは移植可能ではありません。 | バイトコード クラスは、プラットフォーム固有の JVM に転送できます。 |
型セマンティクス | プリミティブ タイプとオブジェクト タイプの間で一貫性があります。 | プリミティブ タイプとオブジェクト タイプでは異なります。 |
ライブラリ | 主に低レベルの機能 | 高レベルのサービスのための大規模なクラス。 |
ランタイムエラー検出 | プログラマーの責任。 | システムの責任。 |
機能とデータ | 関数とデータはどのクラスの外部にも存在する可能性があり、グローバル スコープと名前空間スコープが利用可能です。 | すべての関数とデータはクラス内に存在します。 パッケージのスコープが利用可能です。 |
Platform | C++ プログラムはプラットフォームに依存します。特定のプラットフォーム用にコンパイルする必要があります。 | Java プログラムはプラットフォームに依存しません。 Java プログラムは Java 仮想マシン (JVM)。 再コンパイルを必要とせずに実行されます。 |
ランタイムエラー検出 | In C++エラーをチェックするのはプログラマーの責任です。 | プログラム内のエラーをチェックするのはシステムの責任です。 |
ポインタ | C++ サポートポインタ。 | Java ポインターに対するサポートは限定的のみです。 |
Structure | 構造をサポートします。 | 構造体はサポートしません。 |
組合 | C++ 労働組合を支持します。 | Java ユニオンをサポートしません。 |
オブジェクト管理 | C++ new および delete キーワードを使用した手動オブジェクト管理をサポートします。 | Java 自動ガベージコレクションに大きく依存します。デストラクタはサポートされていません。 |