JavaとC++の違いは何ですか
違い: Java では論理式で非ブール値をブール値として使用できませんが、C では使用できます。 C では、Java がサポートしていない演算子のオーバーロード メカニズムが導入されました。 Cにはgotoがありますが、Javaにはgotoがありません。 C には多重継承があり、Java には単一継承しかありませんが、Java はインターフェイスを通じて多重継承を実装できます。
このチュートリアルの動作環境: 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++の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Cでは、文字列でCharタイプが使用されます。1。単一の文字を保存します。 2。配列を使用して文字列を表し、ヌルターミネーターで終了します。 3。文字列操作関数を介して動作します。 4.キーボードから文字列を読み取りまたは出力します。

エラーの原因とソリューションPECLを使用してDocker環境に拡張機能をインストールする場合、Docker環境を使用するときに、いくつかの頭痛に遭遇します...

C35の計算は、本質的に組み合わせ数学であり、5つの要素のうち3つから選択された組み合わせの数を表します。計算式はC53 = 5です! /(3! * 2!)。これは、ループで直接計算して効率を向上させ、オーバーフローを避けることができます。さらに、組み合わせの性質を理解し、効率的な計算方法をマスターすることは、確率統計、暗号化、アルゴリズム設計などの分野で多くの問題を解決するために重要です。

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4

言語のマルチスレッドは、プログラムの効率を大幅に改善できます。 C言語でマルチスレッドを実装する4つの主な方法があります。独立したプロセスを作成します。独立して実行される複数のプロセスを作成します。各プロセスには独自のメモリスペースがあります。擬似マルチスレッド:同じメモリ空間を共有して交互に実行するプロセスで複数の実行ストリームを作成します。マルチスレッドライブラリ:pthreadsなどのマルチスレッドライブラリを使用して、スレッドを作成および管理し、リッチスレッド操作機能を提供します。 Coroutine:タスクを小さなサブタスクに分割し、順番に実行する軽量のマルチスレッド実装。

Spring Bootは、Java開発に革命をもたらす堅牢でスケーラブルな、生産対応のJavaアプリケーションの作成を簡素化します。 スプリングエコシステムに固有の「構成に関する慣習」アプローチは、手動のセットアップを最小化します。

std :: uniqueは、コンテナ内の隣接する複製要素を削除し、最後まで動かし、最初の複製要素を指すイテレーターを返します。 STD ::距離は、2つの反復器間の距離、つまり、指す要素の数を計算します。これらの2つの機能は、コードを最適化して効率を改善するのに役立ちますが、隣接する複製要素をstd ::のみ取引するというような、注意すべき落とし穴もあります。 STD ::非ランダムアクセスイテレーターを扱う場合、距離は効率が低くなります。これらの機能とベストプラクティスを習得することにより、これら2つの機能の力を完全に活用できます。
