Java 概要
Java は、Sun Microsystems 社が 1995 年 5 月に発表した、Java オブジェクト指向プログラミング言語と Java プラットフォームの総称です。James Gosling と同僚たちによって共同開発され、1995 年に正式にリリースされました。
その後、Sun 社は Oracle(オラクル)社に買収され、Java もそれに伴って Oracle 社の製品となりました。
Java は 3 つの体系に分けられます:
- Java SE(J2SE)(Java 2 Platform Standard Edition、Java プラットフォーム標準版)
- Java EE(J2EE)(Java 2 Platform, Enterprise Edition、Java プラットフォーム企業版)
- Java ME(J2ME)(Java 2 Platform Micro Edition、Java プラットフォームマイクロ版)
2005 年 6 月、JavaOne カンファレンスが開催され、SUN 社は Java SE 6 を公開しました。このとき、Java の各バージョンは名称が変更され、その中の数字「2」を廃止しました。J2EE は Java EE に、J2SE は Java SE に、J2ME は Java ME に改名されました。
主な特徴
Java 言語はシンプルです:
Java 言語の構文は C 言語や C++ 言語に非常に近いため、ほとんどのプログラマーが簡単に学習し使用できます。一方、Java は C++ でほとんど使われず、理解しにくく、混乱を招く特性(演算子オーバーロード、多重継承、自動的な型キャストなど)を廃しました。特に、Java 言語はポインタを使用せず、参照を使用します。また、メモリ空間の自動割り当てと回収を提供するため、プログラマーはメモリ管理を心配する必要がありません。
Java 言語はオブジェクト指向です:
Java 言語はクラス、インターフェース、継承などのオブジェクト指向の特性を提供します。簡単にするため、クラス間の単一継承のみをサポートしますが、インターフェース間の多重継承はサポートし、クラスとインターフェース間の実装メカニズム(キーワードは implements)もサポートします。Java 言語は動的バインディングを全面的にサポートしますが、C++ 言語は仮想関数に対してのみ動的バインディングを使用します。要するに、Java 言語は純粋なオブジェクト指向プログラミング言語です。
Java 言語は分散型です:
Java 言語はインターネットアプリケーションの開発をサポートします。基本的な Java アプリケーションプログラミングインターフェースには、ネットワークアプリケーションプログラミングインターフェース(java.net)があります。これは、URL、URLConnection、Socket、ServerSocket などを含むネットワークアプリケーションプログラミング用のクラスライブラリを提供します。Java の RMI(リモートメソッドアクティベーション)メカニズムも、分散アプリケーションを開発するための重要な手段です。
- Java 言語は堅牢です:
Java の強い型付けメカニズム、例外処理、ガベージの自動収集などは、Java プログラムの堅牢性の重要な保証です。ポインタを廃したことは Java の賢明な選択です。Java のセキュリティチェックメカニズムは、Java をさらに堅牢にしています。
Java 言語は安全です:
Java は通常、ネットワーク環境で使用されるため、Java は悪意のあるコードの攻撃を防ぐためのセキュリティメカニズムを提供します。Java 言語が備える多くのセキュリティ特性に加えて、Java はネットワークを介してダウンロードされたクラスに対するセキュリティ防御メカニズム(クラス ClassLoader)を持っています。例えば、ローカルの同名クラスに置き換えられないように異なる名前空間を割り当てる、バイトコード検査などです。また、Java アプリケーションがセキュリティ監視役を設定できるように、セキュリティ管理メカニズム(クラス SecurityManager)を提供します。
Java 言語はアーキテクチャ中立です:
Java プログラム(拡張子が java のファイル)は、Java プラットフォーム上でアーキテクチャ中立なバイトコード形式(拡張子が class のファイル)にコンパイルされ、その後、この Java プラットフォームを実装した任意のシステムで実行できます。この方法は、異種のネットワーク環境やソフトウェアの配布に適しています。
Java 言語は移植可能です:
この移植性はアーキテクチャ中立性に由来します。さらに、Java は各基本データ型の長さを厳密に規定しています。Java システム自体も非常に移植性が高く、Java コンパイラは Java で実装されており、Java の実行環境は ANSI C で実装されています。
Java 言語はインタープリタ型です:
前述のように、Java プログラムは Java プラットフォーム上でバイトコード形式にコンパイルされ、その後、この Java プラットフォームを実装した任意のシステムで実行できます。実行時には、Java プラットフォーム内の Java インタープリタがこれらのバイトコードを解釈して実行します。実行中に必要なクラスは、リンク段階で実行環境に読み込まれます。
Java は高性能です:
解釈型の高級スクリプト言語と比較すると、Java は確かに高性能です。実際、Java の実行速度は JIT(Just-In-Time)コンパイラ技術の発展に伴い、ますます C++ に近づいています。
Java 言語はマルチスレッドです:
Java 言語では、スレッドは特別なオブジェクトであり、Thread クラスまたはそのサブクラス(孫クラス)によって作成される必要があります。通常、スレッドを作成するには 2 つの方法があります。1 つは、Thread(Runnable) という形のコンストラクタを使用して、Runnable インターフェースを実装したオブジェクトをスレッドにラップする方法です。もう 1 つは、Thread クラスからサブクラスを派生させて run メソッドをオーバーライドし、そのサブクラスから作成したオブジェクトをスレッドとする方法です。注目すべき点は、Thread クラスはすでに Runnable インターフェースを実装しているため、どのスレッドにも run メソッドがあり、run メソッドにはスレッドが実行するコードが含まれています。スレッドのアクティビティは一連のメソッドによって制御されます。Java 言語は複数のスレッドの同時実行をサポートし、マルチスレッド間の同期メカニズム(キーワードは synchronized)を提供します。
Java 言語は動的です:
Java 言語の設計目標の 1 つは、動的に変化する環境に適応することです。Java プログラムに必要なクラスは、実行環境に動的にロードでき、ネットワークを介して必要なクラスをロードすることもできます。これはソフトウェアのアップグレードにも有利です。さらに、Java のクラスは実行時の表現を持ち、実行時の型チェックを行うことができます。
発展の歴史
- 1995 年 5 月 23 日、Java 言語が誕生しました。
- 1996 年 1 月、最初の JDK(JDK 1.0)が誕生しました。
- 1996 年 4 月、10 の主要なオペレーティングシステムベンダーが、自社製品に Java 技術を組み込むことを表明しました。
- 1996 年 9 月、約 8 万 3000 の Web ページが Java 技術を使用して制作されました。
- 1997 年 2 月 18 日、JDK 1.1 がリリースされました。
- 1997 年 4 月 2 日、JavaOne カンファレンスが開催され、参加者は 1 万人を超え、当時の世界的な同種会議の規模の記録を樹立しました。
- 1997 年 9 月、JavaDeveloperConnection コミュニティのメンバーが 10 万人を超えました。
- 1998 年 2 月、JDK 1.1 は 200 万回以上ダウンロードされました。
- 1998 年 12 月 8 日、Java 2 エンタープライズプラットフォーム J2EE がリリースされました。
- 1999 年 6 月、SUN 社は Java の 3 つのバージョンをリリースしました:標準版(Java SE、以前は J2SE)、企業版(Java EE、以前は J2EE)、マイクロ版(Java ME、以前は J2ME)です。
- 2000 年 5 月 8 日、JDK 1.3 がリリースされました。
- 2000 年 5 月 29 日、JDK 1.4 がリリースされました。
- 2001 年 6 月 5 日、NOKIA は、2003 年までに Java 対応携帯電話を 1 億台販売すると発表しました。
- 2001 年 9 月 24 日、J2EE 1.3 がリリースされました。
- 2002 年 2 月 26 日、J2SE 1.4 がリリースされ、これ以降 Java の計算能力は大幅に向上しました。
- 2004 年 9 月 30 日 18:00、J2SE 1.5 がリリースされ、Java 言語の開発史上また一つのマイルストーンとなりました。このバージョンの重要性を示すため、J2SE 1.5 は Java SE 5.0 に改名されました。
- 2005 年 6 月、JavaOne 大会が開催され、SUN 社は Java SE 6 を公開しました。このとき、Java の各バージョンはすでに名称が変更され、その中の数字「2」が廃止されました。J2EE は Java EE に、J2SE は Java SE に、J2ME は Java ME に改名されました。
- 2006 年 12 月、SUN 社は JRE 6.0 をリリースしました。
- 2009 年 4 月 20 日、オラクルは 74 億ドルで Sun を買収し、Java の著作権を取得しました。
- 2010 年 11 月、オラクルの Java コミュニティに対する不親切な態度のため、Apache は JCP から脱退すると表明しました。
- 2011 年 7 月 28 日、オラクルは Java 7.0 の正式版をリリースしました。
- 2014 年 3 月 18 日、Oracle 社は Java SE 8 を発表しました。
- 2017 年 9 月 21 日、Oracle 社は Java SE 9 を発表しました。
- 2018年3月21日、Oracle社はJava SE 10を発表しました。
- 2018年9月25日、Java SE 11がリリースされました。
- 2019年3月20日、Java SE 12がリリースされました。
Java 開発ツール
Java言語はシステムメモリを1G以上確保することを推奨します。その他のツールは次のとおりです:
- Linuxシステム、Mac OSシステム、Windows 95/98/2000/XP、WIN 7/8システム。
- Java JDK 7、8……
- vscodeエディタまたはその他のエディタ。
- IDE:Eclipse、 IntelliJ IDEA、NetBeansなど。
上記のツールをインストールしたら、Javaの最初のプログラム「Hello World!」を出力できます。
次の章では、Java開発環境の設定方法を紹介します。
その他の拡張