Javaプログラミング言語:進化、バージョン、応用分野
Javaの概要
Javaプログラミング言語は、もともとSun MicrosystemsでJames Gosling氏によって開発され、1995年にSun MicrosystemsのJavaプラットフォーム(Java 1.0[J2SE])のコアコンポーネントとしてリリースされました。
最新のJava Standard EditionはJava SE 8です。Javaの進化と幅広い普及に伴い、さまざまなプラットフォーム向けの複数の構成が構築されました。例えば:
- J2EE:エンタープライズアプリケーション向け
- J2ME:モバイルアプリケーション向け
新しいJ2バージョンは、それぞれJava SE、Java EE、Java MEと改称されました。Javaは「Write Once, Run Anywhere(一度書けば、どこでも実行可能)」を保証します。
Javaの主な特徴
- オブジェクト指向:Javaではすべてがオブジェクトです。オブジェクトモデルに基づくため、容易に拡張できます。
- プラットフォーム独立:C/C++などとは異なり、Javaはプラットフォーム固有のマシンコードではなく、プラットフォーム非依存のバイトコードにコンパイルされます。このバイトコードはウェブ上で配布され、実行プラットフォーム上のJVM(Java Virtual Machine)によって解釈実行されます。
- シンプル:Javaは習得しやすいよう設計されています。OOPの基本概念を理解していれば、容易にマスターできます。
- セキュア:Javaのセキュリティ機能により、ウイルスフリー、改ざんフリーなシステム開発が可能です。認証技術は公開鍵暗号に基づいています。
- アーキテクチャ中立:Javaコンパイラはアーキテクチャ中立なオブジェクトファイル形式を生成し、Javaランタイムシステムがあれば多くのプロセッサで実行可能です。
- ポータブル:アーキテクチャ中立で実装依存の仕様がないためポータブルです。JavaコンパイラはANSI Cで書かれ、クリーンな移植境界(POSIXサブセット)を持ちます。
- 堅牢:コンパイル時エラーチェックとランタイムチェックを重視し、エラーを起こしやすい状況を排除しようとします。
- マルチスレッド:複数タスクを同時実行するプログラムが書け、インタラクティブなアプリケーションの滑らかな動作を実現します。
- インタプリタ型:バイトコードはその場でネイティブ機械語に翻訳され、どこにも保存されません。リンクがインクリメンタルで軽量なため、開発プロセスが迅速かつ分析的です。
- 高性能:JIT(Just-In-Time)コンパイラの使用により高性能を実現します。
- 分散:インターネットの分散環境向けに設計されています。
- 動的:C/C++より動的で、進化する環境に適応するよう設計されています。実行時情報を多く保持し、オブジェクトへのアクセス検証・解決に利用できます。
Javaの歴史
James Gosling氏は1991年6月、自身のセットトップボックスプロジェクトの一つで使用するためにJava言語プロジェクトを開始しました。言語は最初、Gosling氏のオフィスの外に立っていたオークの木にちなんで「Oak」と呼ばれ、また「Green」という名前でも知られ、最終的にランダムな単語リストから「Java」と改名されました。
Sunは1995年に最初の公開実装としてJava 1.0をリリースしました。「Write Once, Run Anywhere(WORA)」を約束し、人気プラットフォームで無償ランタイムを提供しました。
2006年11月13日、SunはJavaの大部分をGNU General Public License(GPL)の下でフリーかつオープンソースソフトウェアとして公開しました。
2007年5月8日、Sunはプロセスを完了し、Sunが著作権を保持していないごく一部を除き、Javaのすべてのコアコードをフリーかつオープンソースとしました。
必要なツール
本チュートリアルの例を実行するには、Pentium 200-MHz、最小64MB RAM(128MB推奨)のコンピュータが必要です。
また以下のソフトウェアも必要です:
- Linux 7.1 または Windows XP/7/8
- Java JDK 8
- Microsoft Notepad または任意のテキストエディタ
このチュートリアルでは、Javaを用いたGUI、ネットワーキング、Webアプリケーション作成に必要なスキルを提供します。
次の章へ
次章では、Javaとそのドキュメントの入手方法、インストール手順、開発環境の準備について説明します。
Java
- Cプログラミング言語:包括的な概要
- Java演算子をマスター:種類、構文、実践例
- Javaコメント:種類、使い方、ベストプラクティス
- Java拡張forループをマスター:構文、例、ベストプラクティス
- Java文字列をマスター:生成、メソッド、ベストプラクティス
- Javaインターフェース完全ガイド:概念、実装、ベストプラクティス
- Java無名インナークラス完全ガイド:定義、構文、実践例
- Javaのtry-with-resourcesをマスターする:自動リソース管理の仕組みと活用法
- Javaアノテーション完全ガイド:種類、配置場所、実践例
- Javaアサーション完全ガイド:バグ早期発見とコード信頼性の向上
- Java 10の新機能とリリースモデル:6ヶ月サイクルとLTSの解説