Java

概要

Javaとは、様々な分野で人気の高いオブジェクト指向プログラミング言語の一つ。旧サン・マイクロシステムズ(Sun Microsystems)社が開発したもので、同社を買収した米オラクル(Oracle)社が開発を引き継いでいる。

C言語に似た表記法を採用しているが、過去の言語の仕様を受け継がず新たに設計されており、特にオブジェクト指向プログラミングを前提として言語仕様が整理されている点が大きな特徴となっている。強力なセキュリティ機構や豊富なネットワーク関連の機能が標準で用意されており、ネットワーク環境で利用されることを強く意識した仕様になっている。

Javaで開発されたソフトウェアは特定のコンピュータの機種やオペレーティングシステムOS)などに依存することなく、基本的にはどのようなプラットフォームでも動作する。ただし、JNIJava Native Interface)のようなインターフェースを通じてOSなどの機能を直接呼び出したり、ある開発環境に固有のライブラリAPIを利用しているプログラムは特定の環境でしか動作しない。

同社では標準の開発環境としてJDKJava Development Kit)、統合開発環境IDE)としてNetBeans実行環境としてJREJava 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言語と総称する。単体の言語としてはScalaGroovyKotlin、Clojureなどが有名で、既存の言語をJVM言語化する言語処理系としてはRubyを利用するJRubyやPythonを利用するJythonがよく知られる。

(2019.4.26更新)

Java用語辞典

他の辞典による解説 (外部サイト)

この記事を参照している文書など (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる