ICDロゴ

Java言語 (Java language)

【ジャバ・ゲンゴ】

最終更新日: 2002/05/19

 米Sun Microsystems社が開発したオブジェクト指向型のプログラミング言語。インターネット/イントラネット環境などにおいて、特定のハードウェアやOSに依存しないアプリケーションを作成することを目的として開発された。

 Java言語の言語仕様はC++によく似ているが、ポインタはなく、それゆえに、ポインタにまつわる各種のトラブル(間違った場所を指したポインタによって予期しないデータ領域が破壊された、など)は発生しにくくなっている。またC++言語などの一般的なプログラム開発言語では、アプリケーションでいったん取得したメモリの解放は、プログラマが明示的に行う必要がある。これに対しJava環境では、使い終わったメモリ領域が自動的にガーベジ・コレクション(メモリの解放と、再利用の準備)されるので、メモリ管理も容易である。

 Java言語で作成されたプログラムは、一般的には、バイト・コードと呼ばれる中間コードに変換され、これをJava仮想マシン(Java Virtual Machine)と呼ばれる仮想的なマシンで解釈して、実際のマシン語やシステム呼び出しなどに変換して実行する。Javaの中間コードは特定のマシンを意識したものではなく、あくまでJava仮想マシンを意識したものなので、Java仮想マシンさえ移植すれば、あらゆるシステムで同一のJavaプログラムを実行できることになる。しかしバイト・コードをインタープリタで実行時に解釈する方法では処理性能が高くないため、現在ではバイト・コードをシステムのネイティブ・コードにコンパイルしてから実行するJIT(Just In Timeコンパイル)方式が一般化している(さらに高速化を図るために、ターゲットとなるプロセッサのマシン語を直接生成する、ネイティブ・コンパイラも存在する)。またバイト・コードを直接実行するJavaプロセッサも開発されている。

 Java言語を利用して作成されたソフトウェアは、実行形態によって、JavaアプレットとJavaアプリケーションに大別される。

 前者のJavaアプレットは、JavaプログラムのコードをWebサーバからWebクライアントに送信し、これをクライアント側コンピュータのWebブラウザ上で実行することを前提としたプログラム・モデルである。Webブラウザを実行するクライアント側では、Java VMでバイト・コードを解釈実行する。プログラムが実行時にダウンロードされるため、実行プログラムをサーバ側で集中管理することが可能であり、かつJava対応のWebブラウザが利用できる環境ならプログラムを実行できるので、さまざまな種類のコンピュータがクライアントとして存在している環境などでは効果が大きい。しかしJavaアプレットは、インターネットを経由してプログラムを配信することも可能なので、セキュリティの観点から、アプレットが実行できる処理(特にファイル入出力など、クライアント・システムに影響を及ぼす可能性がある処理)を大幅に制限している。

 後者のJavaアプリケーションは、伝統的なアプリケーションの形態をとるもので(プログラムの実行ファイルをコンピュータにインストールする)、Javaアプレットのようなセキュリティを確保するために加えられる制限はいっさいない。Javaの実行環境さえあれば、コンピュータやOSを選ばずに、同じJavaアプリケーションを実行することが可能である。

Copyright (C) 2000-2007 Digital Advantage Corp.

参考リンク

アイティメディアの提供サービス

キャリアアップ