【プログラミング言語】Javaってどんな言語?その仕様からC言語との違いまで徹底解説!

Javaというプログラミング言語はよく聞きますがC言語とどう違うのかハッキリしていない方って多いと思います。実はJavaには大きな特徴があり、他にも有名な言語であるC言語とは違う魅力があるのです。今回はJavaとC言語の違いを中心にどんな仕事があるのかも紹介します。もし、何の言語を学ぼうか迷っているのであれば一読してください

 

Javaとはどんな言語なのか?

 

 

Javaは1995年に公開されオブジェクト指向プログラミングの代表例として紹介されることも多いです。ちなみにですがJavaScriptという言語もありますが、こちらはJavaとは似ても似つかないものです。JavaがメロンだったらJavaScriptはメロンパンくらいの違いがあります。話がそれてしまいましたがJavaの特徴はどのようなものがあるのか見ていきましょう。

 

Write Once, Run Anywhere

 

Javaを語る上で欠かせないのが「Write Once, Run Anywhere(一度書けば、ずっと実行される)」です。JavaはOSに依存せずにプログラミングを実行できるのが最大の特徴です。ですので一度コードを書けばWindowsでもLinuxでも対応されているOSならすべて実行できます。C言語ではこのようにいきません。

 

コンパイラ言語である

 

プログラム言語には大きく分けると2つあり、コンパイラ言語とインタプリタ言語があります。コンパイラ言語はコードを書いた後にコンパイルという機械語に変換する作業をして、機械語に変換された実行ファイルでプログラムが実行されます。インタプリタ言語は機械語の変換と実行を同時に行います。

それぞれにメリットがあり代表的な例としてはコンパイラ言語は実行スピードが速いこと、インタプリタ言語はコンパイル作業がいらないこと、すぐに実行できることが挙げられます。ちなみにJavaもCもコンパイラ言語です。

 

C言語との違いは?

 

 

Javaについて簡単に概要をC言語との違いも見ていきましょう。

 

文法が違う

 

JavaとC言語は似ている部分もありますが文法が少し違います。特に大きな違いはクラスという概念がJavaにあることでしょう。後述するオブジェクト指向にもつながるのですが、まずはシンプルなコードで見てみましょう。どちらも結果としてはコンソール画面にCount回数を表示するプログラムとなっています。

 

–Javaのコード–

import java.util.*;

import java.lang.*;

import java.io.*;

 

class Test

{

public static void main (String[] args){

for(int i = 0; i < 10; i++){

System.out.println(“Count” + i);

}

}

}

 

–C言語のコード–

#include <stdio.h>

 

int main(void) {

for(int i = 0; i < 10; i++){

printf(“Count%d\n”, i);

}

 

return 0;

}

 

両方を見比べるとC言語のほうがコードが短いこと、また似たような書き方をしている部分もあるのが見てとれます。細かい解説は今回は省略しますが何となくわかるのではないでしょうか?実際にC言語をある程度習得している人であればJavaへの移行は比較的スムーズに行えます。

 

Javaはオブジェクト指向であること

 

 

JavaとC言語の違いの最も大きな部分がオブジェクト指向であるかないかです。Javaはオブジェクト指向であり、C言語はそうでないと覚えておくといいでしょう。それではオブジェクト指向とは何か?を簡単にではありますが説明します。

オブジェクト指向とはモノに着目しそのモノの操作や属性を抽出してコーディングすることを指します。操作とは振る舞い(実際の行動)を指し、属性は持っている情報と考えると比較的わかりやすいのではないでしょうか。

例えば銀行の処理をプログラミングで表したいとします。銀行の操作はお金を引き出すこと、預けることがあり、属性は顧客データなどがあります。顧客データを元にお金を引き出すことができるのかなどをコーディングします。

少し難しい話になりましたが他にもカプセル化や継承、ポリモーフィズムという概念がオブジェクト指向にあり、C言語よりもより複雑な考えをしなければならないことは明白です。

 

Geekly Media ライター

gibson

0