Hatena Blog Tags

Java

(地理)
じゃわ

→ジャワ

Java

(コンピュータ)
じゃば

狭義ではオブジェクト指向プログラミング言語であり、広義ではプログラミング言語のプログラムの実行環境および開発環境を指す。

概要

Java 技術は、Java 言語と Java プラットフォームからなる。 単に Java 言語のことを指して 「Java」 という言葉が使われることもあれば、プラットフォーム (全部あるいは一部) も含めて 「Java」 という言葉が使われることもある。

元々は家電製品を制御するために作られ、後に Java が登場した当初は Applet が注目され一時脚光を浴びたことがあるものの、当時のデスクトップマシン性能の限界から 「Java は遅い」 という印象がしばらく付きまとうことになってしまった。

その後、Java はネットワークやセキュリティに強くミッションクリティカルに向いているという言語の特徴から、サーバーサイド (Java Servlet) で B2B、基幹系業務、金融系など幅広い分野で使われ Java 言語を爆発的に普及させる基礎を築いた。

マシン性能が向上し、かつ JVM (Java Virtual Machine) の性能が向上した今では、Applet の代替とされる Java Web Start と Java Swing (GUI) の性能向上によって再びデスクトップ Java が再生しつつある。

サーバーサイド環境は Java Platform, Enterprise Edition (Java EE) を参照。 携帯機器のプラットフォームとして Java ME も存在する。

Java 言語 (Java programming language)

プログラミング言語のひとつ。 JavaScript と混同されることが多い。

Java 言語では、すべてのソースコードはまず .java という拡張子のテキストファイルに記述される。 そして、それらのソースファイルは Java のコンパイラによって .class という拡張子のファイル (クラスファイル) にコンパイルされる。 クラスファイルは、プロセッサのネイティブコードではなくバイトコード (bytecodes) で記述される。 このバイトコードは、後で説明する Java 仮想マシンのマシン語である。

Java プラットフォーム (Java platform)

プラットフォームとは、プログラムを実行させるためのハードウェア環境あるいはソフトウェア環境である。 多くのプラットフォームは OS とハードウェアの組み合わせである。 Java プラットフォームはそういった類のプラットフォームとは違い、ソフトウェアのみで構成されるプラットフォームであり、別のハードウェアベースのプラットフォーム上で動作する。

Java プラットフォームは 2 つの部分からなる:

  • Java 仮想マシン (Java Virtual Machine; JVM)
  • Java アプリケーションプログラミングインターフェイス (Java Application Programming Interface; Java API)

Java 仮想マシンは、上述の Java のクラスファイルに記述されたバイトコードを実行するための仮装的なマシンである。 Java API は、すぐに使える多くの有用な機能を提供する多くのソフトウェア部品の集合である。 それらは関連のあるクラスとインターフェイスごとにパッケージにグループ分けされている。

プラットフォームから独立した環境であるため、Java プラットフォームはネイティブコードと比べて遅くなりうるものである。 しかしながら、コンパイラと仮想マシン技術の進歩により、移植性を損なうことなくネイティブコードに近いパフォーマンスを得られるようになっている。 例えば、JIT (Just In Time) コンパイルや起動時のフットプリント削減のための Hotspot 技術などが存在する。

実行環境など

Oracle から、開発環境として Java Development Kit (JDK) が、実行環境として Java Runtime Environment (JRE) が提供されている。 オープンソースの Java SE 実装として OpenJDK (OpenJDK サイト) があったり、オープンソースの Java VM 実装として KAFFE などがあったり、いくつもの実装が存在する。

Java 技術の歴史

1990 年の終わり、Sun Microsystems 社はワークステーション市場で世界をリードしており、それは健全な速度で成長し続けていた。 他の分野に革新技術と専門知識を適用することが考えられ、Sun は家電分野での調査を始めた。 1991 年に調査のためのプロジェクトである Green プロジェクトが結成され、James Gosling、Patrick Naughton、Mike Sheridan といったエンジニアは離れたオフィスへ移動し、Sun とのコミュニケーションをほぼしなくなる。 この年に、James Gosling は Oak プログラミング言語 (のちの Java) の研究を始めた。

1992 年に、Green プロジェクトチームは Star7 を生み出した。 これは、アニメーションするタッチスクリーンの UI を持ち、ユーザー補助のためのエージェントとして Duke (のちに Java のマスコットキャラクターとなる) を搭載した PDA デバイスである。 プロセッサ非依存の新しいプログラミング言語である Oak が、Star7 のために James Gosling によって生み出された。

1993 年、Green プロジェクトは Sun の完全子会社 FirstPerson になるが、その後、グループは Sun に戻り、ターゲットがセットトップ・ボックスからオンライン・サービスや CD-ROM、デスクトップ・プラットフォームといったところに変更される。 1994 年、Sun のエンジニアの Patrick Naughton と Jonathan Payne は Oak 言語を使って WebRunner (後に HotJava と改称される) を開発。 これは、要素の移動や動的に実行されるコンテンツをサポートした最初のブラウザであった。

1995 年、商標的な問題から、プログラミング言語の名前が Oak から Java に変更される。 TED (Technology, Entertainment, and Design) 会議において、WebRunner が初めて公にデモンストレーションされた。 SunWorld 会議において、HotJava ブラウザとともに Java 1.0a2 が発表された。 さらに、Netscape Navigator の最初の Java が有効なバージョンがリリースされた。

1996 年、Java 1.0 プログラミング環境がダウンロード可能となる。


スッキリわかるJava入門

スッキリわかるJava入門

Java 8 Lambdas: Pragmatic Functional Programming (English Edition)

Java 8 Lambdas: Pragmatic Functional Programming (English Edition)

このタグの解説についてこの解説文は、すでに終了したサービス「はてなキーワード」内で有志のユーザーが作成・編集した内容に基づいています。その正確性や網羅性をはてなが保証するものではありません。問題のある記述を発見した場合には、お問い合わせフォームよりご連絡ください。

ネットで話題

もっと見る

関連ブログ