支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • Java言語のコンパイルとは

近年人気が高まっているプログラマーという職業ですがプログラミングを行うためにはプログラミング言語についての理解が必要です。プログラミング言語には様々ざまな種類があり特徴や用途もそれぞれですがこの記事ではどんな環境でも使える言語として根強い人気があるJava言語について紹介していきます。

Javaとは

では、プログラミング言語の1つであるJavaについて紹介します。Java言語は大変多くの現場で使われており、OSに依存しないので様々なところで利用できる汎用性が高く評価されていて、人気の言語です。この「OSに依存しない」という部分がJavaの最大の強みでmacOS用Windows用といった具合にそれぞれのOS向けに仕様変更する必要がありません。また、近年ではスマートフォンのアンドロイドが大いに普及したのであらゆるOSで同じように動作するというのは大きなメリットになります。一方では動作するが一方では動作しないといったようなリスクを未然に防ぐことができるのです。その他、JavaはRubyやPHPのようなインタープリタ言語ではなく、コンパイルを必要とするコンパイラ言語なので処理速度が速いのが特徴です。

Javaでできること

Java言語を用いた開発は様々なものがあります。金融の取引システムなどの 業務システム開発やAndroidアプリ開発、WEBアプリケーション、ゲームや、組み込みシステムなどの開発が可能です。OSに依存しないという特徴から、スマートフォンの普及に伴い増加したAndroid、ブルーレイディスクプレーヤーや洗濯機などの家電製品の組み込みシステムは特にJavaが用いられていることが多いです。

Javaのデメリット

Java言語のデメリットとして先に述べたようにコンパイルを必要とするコンパイラ言語なので、RubyやPHPのようなインタープリタ言語とは違い一旦コンパイルという作業を挟まなければならない分、学習の難易度は高めです。また、構文などもシンプルなRubyやPHPなどに比べると複雑でコード量も多くなりがちです。この「コンパイル」という動作が馴染みがない人にとっては難しく感じてしまい、Java言語を倦厭してしまいがちだと思いますのでこの「コンパイル」はどのような役割があるかを紹介します。

コンパイルとは

ざっくりいうと、コンパイルとは人がプログラング言語を用いた書いたソースコードを機械にも読めるように変換することです。まず、コンピューターにはバイナリコードという機械語でしか命令できません。バイナリコードは0か1のみで構成されているコードです。0か1のみの構成では人間がコードの内容を把握できないため、人が理解しやすいプログラミング言語でのコードを記述し、それを変換(コンパイル)してから機械に読ませているということです。
この変換が行われるタイミングや、どのように実行されるが「コンパイラ言語」「インタープリタ言語」の違いになっています。Java言語のようなコンパイル言語はプログラムを事前にコンパイルし、バイナリコード(Javaではクラスコードといいます)を作成、そのクラスコードを読み込んでプログラムが実行するという流れでプログラムは実行されます。一方、インタープリタ言語はプログラムを実行する時にソースプログラムを読み込んで「実行時」に変換してからプログラムが実行されます。なので、実行までの過程(人が操作する部分)が一段階少ないです。ただ、実行時に変換する分、処理自体はあらかじめ処理が済んでいるコンパイラ言語に比べて遅くなってしまいます。これがコンパイル言語の処理が早い理由です。

Javaが実行されるまでの手順

では、Javaにおいてのプログラムが実行されるまでの流れについて改めてまとめます。
まず、ソースコードを作成します。これは拡張子が「.java」になっているファイルでJava言語によって書かれたソースコードです。例えばHello world!を出力させるコードは以下のようなコードです。

class Test{
  public static void main(String[] args){
    System.out.println("Hello world!");
  }
}
このようにソースコードを作成したら、このソースコードをコンパイルします。 コンパイルはターミナルでソースプログラムのある場所に移動し、以下のコマンドを入力することで実行されます。
javac ソールプログラムのファイル名.java
コンパイルが完了すると、.classという拡張子で同じ名前のファイルがソースプログラムと同ディレクトリ内に作成されます。これがクラスファイルです。 最後にクラスファイルを実行するのですが、実行はするにはターミナルで以下のコマンドを実行します。
java クラス名(ファイル名)
こちらを実行することでHello world!がターミナルに出力されます。

まとめ

Java言語についてとコンパイルについて紹介させていただきました。Java言語はRubyやPHPのような言語と比べると習得の難易度はやや高めですが、汎用性の高さから、長い間常に人気言語の上位にランクインしている言語ですので是非習得を目指してみてください。