【java基礎編】Javaとは

シェアする

  • このエントリーをはてなブックマークに追加

【 解 説 】
Javaとは、1995年に、米サン・マイクロシステムズ社によって製品として発表されたプログラミング言語です。

以下のページに詳細があります

http://jp.sun.com/java/about/

Javaと混同されがちなものにJavaScriptがありますが、JavaとJavaScriptは、名前や文法が見掛け上似ているだけで、全く別ものです(かつては、LiveScriptという名称でした。)。JavaScriptはWeb用の簡易言語と呼ぶべきもので、汎用プログラミング言語であるJavaとは異なると押さえて下さい。
このページでは以後、Javaのみについて解説します。JavaとJavaScriptは文法に類似点は多いですが、JavaScriptに興味のある方はJavaScriptについて書かれたものを参考にしたほうがよいでしょう。(本サイトではJavaScriptに関するコラムは掲載されておりません。ご了承下さい。)

これから説明するJavaの環境は、次のようになっています。

<J2SE>
先ず、Javaの持ついろいろな機能をとりまとめた、一番大きな環境のことをJava 2 Platformと呼びます。このPlatform には3種類ありますが、この講座ではその標準版といえるJ2SE(Java 2 Platform, Standard Edition)を扱っていきます。
Java 2 の"2"は、Javaのバージョン1.2以降から付けられたもので、あまり深く考える必要はありません。 Standard Editionという名前からもわかるように、他のEditionもあります。Enterprise Edition と Micro Edition がそれです。他のEditionについて知りたい方は、上記のURLを参照するなどしてみて下さい。

さて、このJ2SEというのは、Javaの環境全体を指している言葉ですが、J2SEは次の2つから成り立っています。

<JRE(Java Runtime Environment)>
Javaプログラムを「実行」するために必要な、一連のプログラム群のことです。

<JRE以外>
Javaプログラムを「作成」するために必要なプログラムなどが含まれます。特に重要なのがJavaコンパイラーです。コンパイラーとは、人間が書いたプログラムの雛型(ソースコードと呼びます)を、コンピュータが解釈できることばに翻訳するプログラムのことです。

とりあえず以上をまとめておきますと、Java環境はJREとその他(コンパイラーなど)から成るとなります。

JREはいろいろなプログラムを含みますが、そのなかで重要なものにJVM(Java Virtual Machine)があります。このJVMこそが、Javaを「どんなソフトウエア・ハードウエア上でも動く」言語にしている秘密なのです。これを理解するために、C言語などのコンパイラー言語とJavaとの違いをみていきましょう。

C言語などの言語はコンパイラー言語と呼ばれ、大雑把に言うと以下の手順でプログラムが実行されます。

  • (1) ソースコードを(人間が)書く
  • (2) コンパイラーと呼ばれるプログラムがソースコードを分析し、コンピュータが解釈できることばを作成する (作成されたものをネイティブコードと呼ぶことがある)
  • (3) OSがネイティブコードを解釈し、実行する

ここで、(2)によって生成されるネイティブコードは、OSによって違うものになります。つまり、(1)で書いたものが同じであっても、(2)で生成されるものはWindowsとUnixとでは異なります。
この理由は、Windowsが解釈することばとUnixが解釈することばの間に互換性がないことによります。
したがって、C言語で書かれたソースコードから、WindowsとUnixで実行できるプログラムを作成したい場合、それぞれの環境でコンパイル(ソースコードをコンパイラーに分析させ、ネイティブコードをつくること) する必要があります。

一方、Javaもコンパイラーを持っていますが、その役割は他のコンパイラー言語とは少し異なります。
Javaの場合、プログラムを実行させるためには、

  • (1) ソースコードを(人間が)書く
  • (2) コンパイラーがソースコードを分析し、JVMが認識できるバイトコードという中間形式を作成する
  • (3) JVMがバイトコードを読み、実行する

という手順を踏みます。先のC言語の場合はプログラムを実行しているのはOS(Windowsなど)であったのに対し、Javaプログラムを実行しているのはJVMです。OSはJVMを介して間接的にJavaプログラムを実行します。

(2)で生成されるバイトコードは、周囲の環境に依存しません。つまり、Windows上でもUnix上でも、 ソースコードをコンパイルすると同じバイトコードが作られます。
したがって、一度コンパイルすれば、出来上がったバイトコードは、JVMが動きさえすればどんな環境でも動かすことができるわけです。
JVMは、Windows, Unixをはじめさまざまな環境で動くものが各メーカー(Sun以外にもあります)から提供されていますので、私たちユーザーはそれを使うことによって「どこでも動く」を実現させることが出来るわけです。

■お薦め参考関連資料


Sun、Sun Microsystems、サンのロゴマーク、Java、Solarisに関連するすべての商標およびロゴマークは、米国 Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

デル株式会社