■■■■■ Java ■■■■■
[ もどる ]


昨今のホームページでよく見かける、マウスカーソルを蝶が追いかけて来たり、時計が動いていたり、 凝ったゲームができたり、というものには大抵、Javaが使用されています。 しかし、一言Javaといってもいろいろなものがあり、マウスカーソルを蝶が追いかける等のものは一般的に「JavaScript」 と呼ばれ、Javaとは全く違うものなのです。

ではJavaとは何なのでしょう…。      答えはプログラム言語と実行環境です。

簡単に説明すると、プログラムをJava形式で書き、コンパイル(変換)し、Java実行環境で実行させるのです。
Java実行環境とは、変換されたJavaプログラムを実行できるプログラムで、 各種パソコンやワークステーション・大型汎用コンピュータ用にそれぞれ用意されています。 異なる環境下で同一のプログラムを実行できるところに注目してください。
コンパイルされたJavaプログラムは、Java実行環境下であればどのようなコンピュータであっても同様に動作します。

ここまで書けばJavaはとても素晴らしいもので、プログラム言語界の無敵艦隊のような気がします。が、欠点もあります。 それはJavaプログラムはコンパイルされるとバイトコード形式というものになります。 これはコンピュータに依存しない形式のデータなので一応長所なのですが、 このデータを実行する際は一つずつ読み込みながら実行するインタープリタ方式なのです。 さらにコンピュータに依存しないということは、そのコンピュータでは直接実行できないということなので、 実際にはJava実行環境が一つ一つ解釈しながら実行することになります。当然動作が遅いのがJavaの欠点になります。
しかし、その欠点も補う技術があります。JIT(Just In Time Compiler)とHotSpot技術です。

ここまで書けば、Javaとは何なのかがかなり見えてきたはずです。しかしそれでもJavaの表面的な概要であり、 実際には大きく分けて三つの実行形態があります。 それはJavaアプリケーション・Javaアプレット・Javaサーブレットです。 ここではそれぞれを先ほどのJITとHotSpotと共に簡単に説明します。

▼ JIT
これはJavaの短所、パフォーマンスの悪さを改善するために導入された技術です。
Javaがなぜ遅いのかというと、常に実行できるプログラムに変換しながら動作しているからですが、 JITはそれを一度変換したものを取って置いて、再度同じ所が実行される場合、変換済みのものを利用するようにした技術です。
変換後はそのコンピュータのマシン語プログラムになり、それを使用するため二度目からは非常に早く動作します。
ただしこれは全てのプログラムを変換するので実行までに時間がかかるのと、 一度しか使用しない部分についても変換するため、逆に効率が悪い部分もあります。

▼ HotSpot
HotSpotはJITのような全てを変換をせず、プログラムの動作状態を判断しながら、 繰り返し使用される部分、つまり速くなるであろうと思われる部部についてのみ、変換済みプログラムを利用するようにした技術です。
これによってJITよりも効率的に動作するようになります。
サン・マイクロシステムズはHotSpotを実装すると今まで2倍の速度でJavaが動作する、と言ってます。

▼ Javaアプリケーション
Javaアプリケーションと言えば、Javaで作ったプログラム全てを指すのですが、 下記のアプレットやサーブレットと比較するため、この名で呼ぶ事にします。
これはJavaプログラムが、各コンピュータのローカルハードディスク内(基本的には)から起動するものを指します。 当然通常のCやBasicで書かれたプログラムと同様の効果があり、欠点も含んでいます。 が、前途にも述べたとおり、全てのコンピュータで汎用的に動作するプログラムです。 忘れてはいけませんが、必ずそのコンピュータにはJava実行環境が無いといけません。

▼ Javaアプレット
上記のJavaアプリケーションに対しJavaアプレットは、はWebプラウザ上で動作するのが前提にされています。
ですのでプログラムの実行する場合はWebブラウザをからインターネットを経由(主に)でダウンロードされ動作します。 欠点は複雑なプログラムを組むほどファイルサイズが増大し、ダウンロードに時間がかかる事ですが、 最近のWebブラウザの殆どはJavaに対応していますので手軽にWebブラウザ上で複雑な処理を行う事ができます。

▼ Javaサーブレット
最後にJavaサーブレットですが、Javaプログラムの動作場所をクライアントではなく、サーバ側で行うようにしたものです。
複雑な計算や処理をサーバ上で行い、演算結果やイメージを軽いHTMLとしてクライアントパソコンに返し、また幾つかのデータを受け取ったりします。 現在これと同様にサーバでプログラム処理を行う仕組みとして、最も多用されているものにCGIと呼ばれるものがあります。 このCGIの短所としてパフォーマンスの悪さやデータベース等の複雑な処理は苦手と言ったところがあり、 それに置き換わるものとしてJavaサーブレットが注目されています。


どうですか?Javaって結構いいと思いませんか?

もう少し開発環境が整ってくれるのと、実行スピードが改善されれば文句無いんですが・・・。

NetScapeの最初のJava実行環境の起動スピードときたらもう(泣)


[ もどる ]