プロが教えるわが家の防犯対策術!

C言語とJava言語で作成されたソフトウェアの違いについて教えてください。

A 回答 (2件)

C言語はネイティブアプリが作れる。


Javaは基本的にはJavaVM(仮想マシン)上で動く中間コンパイルされた物になる。
ただし基本的と言うことで応用的というかJavaもネイティブコンパイルしてネイティブコードを生成する事ができるgcjと言うコンパイラが存在する。

WebサーバサイドのシステムとしてC言語は初期の頃には一部使われていたが今はその部分にJavaに取って代わられている。(JSP/Java Servlet)

C言語はメモリ管理も自分でやる必要があるので下手なプログラマが作ったプログラムは無駄にメインメモリを消費し続けるだけのアプリになる。それによってセキュリティーホールになったりクラッシュしたりするアプリになる。
それに対してJavaはガベージコレクションに対応しているので基本的には自分でメモリの管理をする必要がない。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2011/10/17 13:31

C言語とJava言語には実行される環境に違いがあります。



C言語は、コンパイルされた実行ファイルがOS上で実行されるのに対して
Java言語は、仮想マシンを介して実行されます。
仮想マシンを介するメリットとしては、OS(Windows、Linux等)の違いを仮想マシン上で補完してくれる為移植性が高いです。

逆にC言語で作成されたソフトウェアはOS上で直接実行される為、移植性が低くなりがちです。
しかし、その分実行スピードが速かったり、OS固有の操作をやりやすかったりします。

主な活用範囲としては、
C言語は、自動車の制御やゲーム作成などによく使われています。
Java言語は、業務アプリの作成等によく使われています。

ですがもちろん、Javaでゲームを作ることだってできますし、C言語で業務アプリを作成することももちろん出来ます。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2011/10/17 13:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!