JavaとC言語の違いは何ですか?

青灯夜游
リリース: 2019-11-16 13:30:54
オリジナル
14156 人が閲覧しました

JavaとC言語の違いは何ですか?

#Java と C 言語の違いは何ですか?

1. Java と C のメモリ割り当ては異なります:

Java には 5 つのメモリ割り当て領域があります。ローカル変数、使用後すぐにリサイクルされます)、ヒープ領域(新しいもの、エンティティ、オブジェクトを格納します、各オブジェクトはアドレス値を持ち、各オブジェクトのデータはデフォルト値を持ちます。使用後はガベージに収集されます)プロセッサはアイドル状態です)、メソッド領域、ローカルメソッド領域(システムに関連する)、レジスタ領域(CPU によって使用されます)。 [推奨学習: java コース ]

C には、スタック領域 (関数のパラメーターやローカル変数の値を格納する) とヒープ領域 (動的メモリの適用と解放、プログラマがメモリを解放しない場合、プログラム終了後にオペレーティング システムによって解放される可能性があります)、グローバル領域(静的領域)、コード領域。

2. 関数

1) 変数と関数の場合、C では宣言と定義を実装する必要がありますが、Java には定義のみがあり、宣言はありません。 # 2) C はオブジェクト指向ではないため、C のすべてのグローバル変数と関数は基本的に Java に対して静的です。 Java はオブジェクト指向言語であるため、メイン関数や変数などの関数をクラスやインターフェイスの外で宣言することはできません。 C では、1 つのファイルで多数のグローバル変数を定義し、共有を実現するために他のファイルでこれらの変数を参照によって宣言するのが一般的ですが、Java ではグローバル変数や関数を使用できません。

3) C 関数の戻り値の型が宣言された型と一致しない場合、関数が戻る前に関数の戻り値はこの型に自動的に変換されます。Java でこの状況に直面した場合は、強制的な型変換を追加する必要があります。

4) C の関数呼び出しパラメータ計算の順序は未定義ですが、Java には左から右の順序があります;

5) C の変数または関数が別のファイルで定義されている場合、変数または関数は extern を使用して宣言する必要があります。これらは、個々のファイルがコンパイルされるときには表示されませんが、リンク段階では表示されます。 Java のコンパイラにはそのようなリンク フェーズがなく、必要なファイルはすべてコンパイル中に表示されなければなりません;

6) C プログラムと Java プログラムはどちらも main 関数から実行を開始します。 C の main 関数には通常、argc と argv という 2 つのパラメータが必要です。argc にはコマンド ライン パラメータの数が含まれ、argv には実際のコマンド ライン パラメータが含まれます。Java の main では、メソッド パラメータとして stringargs[] を使用する必要があります。実行中のシステム Java アプリケーションの起動時に使用されるコマンド ライン パラメータ;

7) C および Java では exit 関数を呼び出してプログラムを終了できます; C では abort 関数を使用して異常終了したプログラムを終了できますJava 対応ストラテジーにはそのような機能はありません。

3. プリプロセッサとヘッダー ファイルの比較

Java にはプリプロセッサもヘッダー ファイルもありません; C では、プリプロセッサはテキストを受け取るだけで、他のテキストに変換されます。 C では、ヘッダー ファイルは通常、プロトタイプ、グローバル変数、ライブラリ関数などを宣言するために使用されます。

4. 使用法について

C 言語: Pure C は、最も簡単に作成できる言語であるため、一般に組み込みシステムで最低レベルのプログラムを作成するために使用されます。ハードウェアに接続します。できること: 組み込みの低レベル ソフトウェア、オペレーティング システム、さまざまな関数ライブラリ、エンジン ライブラリ ソフトウェアのコア コード、サーバー側の低レベル ツール。

JAVA: J2EE、J2SM、J2ME、その他何でも。できること: 組み込みモバイル デバイス アプリケーション ソフトウェア開発、Web ページのバックグラウンド ロジック開発、一部のデスクトップ プログラム

C、JAVA は実際にさまざまな分野で使用できます。

5. 動作モードに関して:

C 言語: オリジナルの C はプロセス指向、つまり 1 行ずつ実行されます。

JAVA: 完全にオブジェクト指向であり、モジュールによって実行されます。

(補足: もちろん、C と C# では、C もオブジェクト指向モードに変換されます)

6. 別の構文:

    C 言語はメモリを直接操作できますが、Java はメモリを直接操作できません;
  • ##C 言語は動的ライブラリをカプセル化できますが、Java はできません;

  • #C 言語コードはクロスプラットフォーム化が容易ではありませんが、Java コードはクロスプラットフォーム化が容易です;

  • C 言語にはポインタがありますが、Java にはポインタがありません;

  • C 言語はシリアル ポートを直接操作できますが、Java はサードパーティの jar パッケージのサポートを必要とします。

  • C 言語のスレッドはより柔軟で、Java スレッドはより柔軟です。カプセル化されています;

  • C で使用できる識別子は、C で使用できる 3 種類の識別子に加えて、数字、大文字と小文字、およびアンダースコアであり、数字で始めることはできません。 、Java で使用できる識別子にはもう 1 つドル記号 ($) があり、これも数字で始めることはできません。

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

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