Javaとは

[戻る] [前に] [次に]

目次

Javaとは

Sun Microsystems が開発したプログラミング言語

Java はSun WorkstationやSunOSなどで当時業界の覇権の一部を握っていた Sun Microsystems 社によって発表されたプログラミング言語です。1995年にα版、1996年1月に1.0がリリースされました。プログラミング言語には他にPython、Perl、Ruby、PHP、C言語、C++、C# などがあります。

Javaの語源

Javaの語源はコーヒーのJava(ジャワ)です。日本語ではコーヒーの場合は「ジャワ」、プログラミング言語の場合は「ジャバ」と発音されることが多いですが、英語での発音は「ジャヴァ」です。C++を手本にしていて「C++ ++ --」という名前を付けられそうになりましたがさすがに撤回。開発時はOrk(オーク)という名前が付けられ、その後Javaに変わりました。何故Javaになったかは不明のようです。

JavaScriptとは別物

JavaとJavaScriptは名前も文法も似ていますが別物です。JavaScriptも元々はLiveScriptという名称でしたが、LiveScriptを開発するNetscape Communications社とJavaを開発するSun Microsystems社が提携するにあたり、LiveScriptがJavaScriptに改名されました。Javaで記述されたスクリプトがJavaScriptではありませんし、JavaScriptの略称がJavaでもありません。ルーツは似ていますが、英語とドイツ語くらい異なるものです。

オブジェクト指向プログラミングが可能

Javaは オブジェクト指向 プログラミングが可能な言語です。オブジェクト指向とは継承機能を持つクラスに基づいてインスタンスを生成することで記述性を高める・・・と言っても説明しきれないので、どこか別の場所で詳しく説明します。オブジェクト指向プログラミング言語には他に、Smalltalk、C++、C# などがありますが、最近は大半の言語がオブジェクト指向を取り入れています。

中間コードへのコンパイル言語

プログラミング言語は、プログラムを逐次解析しながら実行する インタープリタ型言語 と、あらかじめマシン語コードに変換しておく コンパイル型言語 に大別されます。Javaは基本的にはコンパイル型言語ですが、CPUに依存したマシンコードではなく、CPUに依存しない Javaバイトコード と呼ばれる 中間コード にコンパイルするのが特徴です。

Java仮想マシン(JVM)

CPUに依存したマシンコードはCPUが直接実行しますが、JavaのようなCPUに依存しない中間コードは、まずJavaの実行環境に含まれるソフトウェアが読み込み、CPU依存のマシンコードに変換しながら実行します。このソフトウェアを JVM(Java Virtual Machine:仮想マシン)と呼びます。

Write Once, Run Anywhere

「一度書いたら、どこでも動く」。JavaではCPUやOSに依存しないプログラミングが可能で、一度書いたプログラムは、WindowsやLinuxなど、様々なプラットフォームで動かすことが可能と言われています。初期の頃はJava VMのバージョンなどに強く左右され、「一度書いてもすぐに動かなくなる」と揶揄されていましたが、最近はいくぶんかは落ち着いてきたようです。

メモリリークの可能性が少ない

Javaはメモリリークの心配がない言語と表現されることもありましたが、これはちょっと嘘です。メモリリークのミスが少なくなるように設計された言語であることは間違いありません。確保されたメモリは、誰からも参照されなくなると自動的に開放されます。この仕組みを ガベージコレクション と呼びます。逆に言うと参照が残っているとメモリに残り続けます。

JDKとJRE

Javaのには二つの配布形態があります。Javaで作成されたプログラムを動かすだけであれば JRE があればよく、プログラムを開発してコンパイルしようとすると JDK が必要になります。

配布形態
JRE(Java Runtime Environment) ... Javaの実行環境。
JDK(Java Development Kit) ... Javaの開発環境。JREを含む。

Javaのエディション(Java SE, Java EE, Java ME)

Java には複数のエディションがあります。個人向けデスクトップなどで使用されるのが SE、企業向けサーバなどで使用されるのが EE、組み込み系で使用されるのが ME です。

エディション
Java SE(Java Platform, Standard Edition)   ... 標準的なエディション
Java EE(Java Platform, Enterprise Edition) ... 企業向け大規模エディション
Java ME(Java Platform, Micro Edition)      ... 組み込み向けエディション

Java 9 以降は、Java EEJakarta EE の名称に変更されました。

Javaのバージョン

Javaのバージョンは下記を参照してください。1.0~1.1の頃はJDKと呼んでいました。JDK 1.2~5.0の間はJava 2と呼ぶようになり、Java 2 SEの略としてJ2SEと呼ばれていました。6以降はJavaとかJava SEと呼ばれています。LTS はLong Time Supportの略でサポート期間が長いバージョンです。

Oracle JDKとOpenJDK

Javaの主な実装に Oracle JDKOpenJDK があります。機能はほぼ同等ですが、ほんのごく一部Oracle JDKにのみの機能があります。Javaは1996年にSun Micorosystemsが開発しました。2006年にはオープンソース版のOpenJDKもリリースされました。2010年のOracleによるSun Microsystems買収によりJavaもOracleに移管されOracle JDKとなりました。Oracle JDKは最初は無償でしたが2018年に有償化されました。2021年には、非LTS版はリリース後6ヵ月間、LTS版は次のLTS版がリリースされた後1年間は無償利用可能となりましたが、今後もライセンスが変わる可能性があります。OpenJDKは、Oracleの他、Red Hat、IBM、Apple、SAPなども参加するコミュニティで開発されており、今後もオープンソース公開が継続される見込みです。

OpenJDKのライセンス

OpenJDKのライセンスはGPL(GNU General Public License)を基本としますが リンク例外 条項が追加されています。GPLに従うとGPLのライブラリとリンクしたアプリケーションは利用者からの要求があるとソースコードを公開する義務がありますが、リンク例外条項があるため、リンクしただけではこの義務は発生しません。


Copyright (C) 2004-2024 杜甫々
http://www.tohoho-web.com/java/about.htm
初版:2004年6月26日、最終更新:2024年4月7日
[戻る] [前に] [次に]