これらの間には多くの相違点と類似点があります。 C++ プログラミング 言語と ジャワ 。 C++ と Java の主な相違点のリストを以下に示します。
比較指標 | C++ | ジャワ |
---|---|---|
プラットフォームに依存しない | C++ はプラットフォームに依存します。 | Java はプラットフォームに依存しません。 |
主に使用されるのは、 | C++は主にシステムプログラミングに使用されます。 | Javaは主にアプリケーションプログラミングに使用されます。 Windows ベース、Web ベース、エンタープライズ、モバイル アプリケーションで広く使用されています。 |
設計目標 | C++ は、システムおよびアプリケーションのプログラミング用に設計されました。の延長でした C プログラミング言語 。 | Java は印刷システム用のインタプリタとして設計および作成されましたが、後にネットワーク コンピューティングのサポートとして拡張されました。使いやすく、幅広いユーザーがアクセスできるように設計されています。 |
後藤 | C++ は goto ステートメントをサポートしています。 | Java は goto ステートメントをサポートしていません。 |
多重継承 | C++ は多重継承をサポートしています。 | Java はクラスを介した多重継承をサポートしていません。を使用することで実現できます Javaのインターフェース 。 |
演算子のオーバーロード | C++ のサポート 演算子のオーバーロード 。 | Java は演算子のオーバーロードをサポートしていません。 |
ポインタ | C++ はポインターをサポートします。 C++ でポインター プログラムを作成できます。 | Java は内部でポインタをサポートしています。ただし、Java でポインタ プログラムを記述することはできません。これは、Java でのポインタのサポートが制限されていることを意味します。 |
コンパイラとインタプリタ | C++ はコンパイラのみを使用します。 C++ は、ソース コードをマシン コードに変換するコンパイラーを使用してコンパイルおよび実行されるため、C++ はプラットフォームに依存します。 | Java はコンパイラとインタプリタの両方を使用します。 Java ソース コードはコンパイル時にバイトコードに変換されます。インタプリタは実行時にこのバイトコードを実行し、出力を生成します。 Java は解釈されるため、プラットフォームに依存しません。 |
値による呼び出しと参照による呼び出し | C++ は、値による呼び出しと参照による呼び出しの両方をサポートします。 | Java は値による呼び出しのみをサポートします。 Javaには参照による呼び出しはありません。 |
構造と結合 | C++ は構造体と共用体をサポートします。 | Java は構造体と共用体をサポートしていません。 |
スレッドのサポート | C++ にはスレッドのサポートが組み込まれていません。スレッドのサポートについてはサードパーティのライブラリに依存しています。 | Javaには組み込み 糸 サポート。 |
ドキュメントのコメント | C++ はドキュメント コメントをサポートしていません。 | Java は、Java ソース コードのドキュメントを作成するためのドキュメント コメント (/** ... */) をサポートしています。 |
仮想キーワード | C++ は virtual キーワードをサポートしているため、関数をオーバーライドするかどうかを決定できます。 | Java には仮想キーワードがありません。デフォルトでは、すべての非静的メソッドをオーバーライドできます。つまり、非静的メソッドはデフォルトで仮想です。 |
符号なし右シフト >>> | C++ は >>> 演算子をサポートしていません。 | Java は、負の数の先頭にゼロを埋める符号なし右シフト >>> 演算子をサポートします。正の数値の場合、>> 演算子と同じように機能します。 |
継承ツリー | C++ は常に新しい継承ツリーを作成します。 | Java ではすべてのクラスが Object クラスの子であるため、Java では常に単一の継承ツリーが使用されます。オブジェクト クラスは、 継承 Javaのツリー。 |
ハードウェア | C++ はハードウェアに近いものです。 | Java はハードウェアとそれほど対話的ではありません。 |
オブジェクト指向 | C++ はオブジェクト指向言語です。ただし、C 言語では単一ルート階層は不可能です。 | Javaもまた、 オブジェクト指向 言語。ただし、Java では (基本型を除く) すべてがオブジェクトです。すべてが java.lang.Object から派生するため、これは単一のルート階層です。 |
注記
- Java は C++ のようなデフォルト引数をサポートしていません。
- Java は C++ のようなヘッダー ファイルをサポートしません。 Java は import キーワードを使用して、さまざまなクラスとメソッドを含めます。
C++ プログラムの例
ファイル: main.cpp
#include using namespace std; int main() { cout << 'Hello C++ Programming'; return 0; }
出力:
Hello C++ Programming
Java プログラムの例
ファイル: Simple.java
class Simple{ public static void main(String args[]){ System.out.println('Hello Java'); } }
出力:
Hello Java