Java
概要
Javaとは、様々な分野で人気の高いオブジェクト指向プログラミング言語の一つ。旧サン・マイクロシステムズ(Sun Microsystems)社が開発したもので、同社を買収した米オラクル(Oracle)社が開発を引き継いでいる。C言語に似た表記法を採用しているが、過去の言語の仕様を受け継がず新たに設計されており、特にオブジェクト指向プログラミングを前提として言語仕様が整理されている点が大きな特徴となっている。強力なセキュリティ機構や豊富なネットワーク関連の機能が標準で用意されており、ネットワーク環境で利用されることを強く意識した仕様になっている。
Javaで開発されたソフトウェアは特定のコンピュータの機種やオペレーティングシステム(OS)などに依存することなく、基本的にはどのようなプラットフォームでも動作する。ただし、JNI(Java Native Interface)のようなインターフェースを通じてOSなどの機能を直接呼び出したり、ある開発環境に固有のライブラリやAPIを利用しているプログラムは特定の環境でしか動作しない。
同社では標準の開発環境としてJDK(Java Development Kit)、統合開発環境(IDE)としてNetBeans、実行環境としてJRE(Java Runtime Environment)をそれぞれ開発・配布しているが、これ以外にも他社やオープンソースプロジェクトなどによって多種多様な開発・実行環境が提供されている。
エディションと用途
Javaには対象機種や用途ごとにライブラリやAPIの標準仕様のセットを定めた複数のエディションがあり、様々な規模や特性のシステムで使い分けられている。最も汎用性が高く一般的な環境向けはJava SE(Standard Edition)で、パソコン上のデスクトップアプリケーションの開発などに用いることができる。
企業の情報システム向けにはJava EE(Enterprise Edition)が提供され、サーバ上で実行されるWebアプリケーションなどの開発に適した機能が用意されている。組み込みシステム向けにはJava ME(Micro Edition)があり、デジタル家電や携帯情報機器などに組み込まれる特定用途の小型コンピュータシステムの開発が可能となっている。
バイトコードと仮想マシン
Javaで記述されたソースコードは、コンパイル時にJavaバイトコードと呼ばれる中間コードにいったん変換される。ソフトウェアはバイトコードの状態で配布され、実行時にはJava仮想マシン(JVM)と呼ばれるソフトウェアによって、実行するプラットフォームに対応した実行可能形式(ネイティブコード)に変換され、実行される。
機種やOSごとの仕様の違いは仮想マシンが吸収するため、開発時にはプラットフォームの違いを意識しなくてよい。ただし、コードの実行そのものにかかる負荷に加えてネイティブコードへの変換のために処理時間やメモリ領域を必要とするため、実行速度やメモリ容量に厳しい要件がある用途では注意が必要となる。
JVM言語
Java仮想マシン(JVM)およびJavaバイトコードの仕様はJava言語自体の仕様とは独立しており、また仕様は公開されているため、Java以外の言語からJVMのバイトコードへ変換(コンパイル)して実行形式のファイルを得ることもできる。
そのようなJVMによる実行方式を前提に開発されたプログラミング言語や言語処理系のことをJVM言語と総称する。単体の言語としてはScalaやGroovy、Kotlin、Clojureなどが有名で、既存の言語をJVM言語化する言語処理系としてはRubyを利用するJRubyやPythonを利用するJythonがよく知られる。
関連用語
Java用語辞典
関連リンク (外部サイト)
他の辞典による解説 (外部サイト)
この記事を参照している文書など (外部サイト)
- 筑波大学技術報告 24号「パーソナルコンピュータによるCAMACデータ収集系」(PDFファイル)にて引用 (2004年4月)