JavaとC++の違いは何ですか

青灯夜游
リリース: 2022-01-12 15:10:35
オリジナル
46372 人が閲覧しました

違い: Java では論理式で非ブール値をブール値として使用できませんが、C では使用できます。 C では、Java がサポートしていない演算子のオーバーロード メカニズムが導入されました。 Cにはgotoがありますが、Javaにはgotoがありません。 C には多重継承があり、Java には単一継承しかありませんが、Java はインターフェイスを通じて多重継承を実装できます。

JavaとC++の違いは何ですか

このチュートリアルの動作環境: Windows7 システム、C 17&&Java8 バージョン、Dell G3 コンピューター。

C と Java の違い:

Java は C をベースにしていますが、それに比べて、Java はより純粋なオブジェクト指向プログラミング言語です。 Java では、すべてがオブジェクトとして扱われます。

1. C オブジェクトを作成した後、使用後にそのオブジェクトを破棄するには、delete メソッドを呼び出す必要があります。Java には、すべての新しいオブジェクトを監視し、参照されなくなったオブジェクトを識別するガベージ コレクション メカニズムがあります。メモリ領域を解放します。

2. スコープ (C、C、および Java のスコープは中括弧の位置によって決まります):
ただし、次のコードは C および C では有効であり、コンパイラーはJava で定義された変数。 C と C ではより大きなスコープを持つ変数が非表示になりますが、Java ではそれが許可されないためです。

{
    int x = 12;
    {
        int x = 96;
    }
}
ログイン後にコピー

3. 基本メンバーのデフォルト値

変数がクラスのメンバーとして使用される場合、Java は基本メンバー変数が確実に使用されるようにデフォルト値のみを与えます。型は初期化されますが、C にはこの機能がありません。ローカル変数の場合、C コンパイラは警告を出し、Java はそれをエラーとして扱います。

4. Java では論理式で非ブール値をブール値として使用できませんが、C では使用できます。

C では、式の値が 0 の場合は false、0 以外の場合は true になります。

例:

if(1){
}
ログイン後にコピー

5. シフト演算子

Java には新しい「符号なし」右シフト演算子 (>>> ) があり、「」を使用します。ゼロ拡張」。正か負かに関係なく、上位ビットに 0 を挿入します。これは C と C にはありません。

6. C では演算子のオーバーロード メカニズムが導入されています。Java ではサポートされていませんが、C# では独自のオーバーロードされた演算子を実装できます。

7. Java では、ブール型を除き、あらゆる基本データ型を他の基本データ型に変換できます。 [推奨関連ビデオ チュートリアル: Java ビデオ チュートリアル ]

8. Java には Sizeof() がありません。 C\C では、sizeof() 演算子によってデータ項目に割り当てられたバイト数がわかります。これは、C のデータ型が異なると、マシンごとにサイズが異なる場合があるためです。ただし、Java のすべてのデータ型は、すべてのマシンで同じサイズです。 (たとえば、C の int は 16 ビット マシンでは 16 ビット、32 ビット マシン以上では 32 ビット、long は 32 ビット マシン以下では 32 ビット、64 ビット マシンでは 64 ビットです)

9, C には goto がありますが、Java には goto がありません。

Java は、同様のジャンプ メカニズムであるタグを提供します。使用法ラベル:

label1:
outer-iteration{
        inner-iteration{
    break;(1)
    continue;(2)
    continue label1;(3)
break label1;(4)

}
}
ログイン後にコピー
  • (1)、break は内部反復を中断し、外部反復

  • (2) に戻ります。 、 continue は、実行ポイントを内部反復の先頭に戻します。

  • (3)、label1 端末の内部反復と外部反復を同時に続行し、label1 に直接移動し、外部反復から開始して反復を続行します。

  • (4) Break label1 もすべての反復を中断して label1 に戻りますが、反復に再び入ることはありません。つまり、両方の反復を完全に終了します。

10. C のデストラクターは、オブジェクトが削除される前にそのオブジェクトが占有しているリソースを解放する機会を提供しますが、Java には「デストラクター」または同様の概念がありません。 [推奨関連ビデオ チュートリアル: C ビデオ チュートリアル ]

C では、オブジェクトは確実に破棄されます (プログラムに欠陥がない場合);

Java では、オブジェクト常にガベージ コレクションされるわけではありません。 (ガベージ コレクションは「破壊」とは異なります)

11. 名前のマスキング

Java の基本クラスに複数回オーバーロードされたメソッド名がある場合、派生クラスでメソッド名を再定義します。基本クラス内のどのバージョンもブロックしません。 C がサブクラスに新しいオーバーロードされたメソッドを導入したい場合は、基本クラスのメソッドをシールドする必要があります。

12. C では多重継承がありますが、Java では単一継承のみです。 Java はインターフェイスを通じて複数の継承を実装できます。

13. Java は半解釈および半コンパイルされており、C よりも実行速度が遅くなります。

14. Java には Struct や Union がありません

15. Java のジェネリックスでは、基本データ型の使用が許可されていません。

16. 配列

  • c では、配列が定義されると、記憶領域が割り当てられ、使用できるようになります。 (定義時に配列サイズを指定してください)

  • Javaでは配列を定義する際、int arr[]は文字通りに配列変数を定義するだけであり、配列を使用することはできません。アレイを新規作成した後でのみ、アレイが作成され、記憶域が割り当てられ、使用可能になります。 (定義時に配列サイズを指定したり、作成時に配列サイズを指定するのは不正です)

17. Cにはポインタがありますが、Javaにはポインタがありません。

18. 32 ビット システムと 64 ビット システムにおける C の主な長さの比較を添付します:

JavaとC++の違いは何ですか

プログラミング関連の知識について詳しくは、プログラミング ビデオをご覧ください。 !

以上がJavaとC++の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート