JDK1.1とは?

JDKの新しいバージョン 1.1 と、その現時点(1997年7月)での最新の状況 を紹介します。
JDK1.1 は当初 1996年末までに正式リリースの予定でした。 しかし多少の遅れが生じたようで、 βバージョンが、12月9日に一般に公開されました。 正式リリースは 1997年 2月になりました。 現時点(1997年7月)での最新バージョンは JDK1.1.3です。
 JDK1.1 はメジャーチェンジです。1.0になかった機能が大幅に拡張されて います。また、1.0 のスーパークラスですから、従来のプログラムとの互換性 は完全に保たれています。

JARファイル形式:
 JAR(Java Archive)はマシンやシステムに依存しない アーカイブ形式のファイルを提供しようというアイディアです。 JARは効率の良い圧縮の機能を提供します。 アプレットのバイトコードのロードの高速化も可能にします。

国際化:
 国際化の機能が拡張される予定です。 これによってアプレットでの日本語文字の使用はもちろん、 言語環境に合わせてアプリケーションの側で対応したり、 タイムゾーンの識別などが可能になるはずです。 なお、JDK1.1が採用した文字コードはUNICODE 2.0というコード体系です。 これは従来の日本語のコード(JIS、SJIS、EUC)のいずれとも異なります。 それらとの変換には専用のクラスが提供されます。

セキュリティ機能の導入:
 暗号化やアクセスコントロールなどのセキュリティの機能が提供され、 アプリケーションに組み込むことが可能になります。 JDK1.1の最初のリリースのセキュリティ機能は、 完全なものというよりは「実験的」な性格が強いものです。 しかし、近い将来の商用利用のため Java言語にとってきわめて重要な 拡張と言えるでしょう。

AWTの拡張:
 java.awtパッケージは大幅な拡張があります。 以下のような機能の追加が予告されています。

  1. Java Beans の採用
     今回の AWTの拡張の基礎になっているのは、 Java Beans と呼ばれるプロジェクトの成果です。 Java Beans は JavaSoft と多くのベンダーが協力して行われ、 その目的はコンポーネントの開発の標準化を図ることです。 GUIを利用した多数の開発ツール(いわゆるアプリケーション・ビルダ) 登場していますが、それらで利用されるコンポーネントのオブジェクトの 互換性を保証しようという狙いです。

  2. コピー&ペーストとドロップ&ドラッグ
     システムに依存しないコピー&ペーストの機能を Clipboardと いうクラスを通じて実現します。 ドロップ&ドラッグの操作に対する対応も行われる予定ですが、 最初のリリースには間に合わなかったようです。

  3. 新しいイベントモデルの採用
     イベント及びコンポーネント間のイベントの伝搬を扱うモデルが 新しいものになります。 イベントを表すクラスは、 EventObject というメタクラスから派生する 階層化されたクラス群(たとえば AwtEvent, ComponentEventのように)によって 取り扱われることになります。
     EventSource と EventListener という概念を導入することによって オブジェクト間のイベントの伝搬をコントロールします。 イベントの検出と処理の実行は異なるクラスに分離することができ、 その結果より明快で柔軟な処理が可能になります。
  4. コンポーネントの追加
     クラス PopupMenu が追加され、 ポップアップ・メニューも利用できるようになります。
     クラス ScrollPane が追加され、 スクロール機能を備えた Containerが新たに提供されます。

  5. その他
     マウスを使わない操作(いわゆるショートカット)に対して、 新しく標準的な方針を提供します。
     デスクトップ環境のウィンドウの枠のカラーを取得して、 アプリケーションの統一感を高めることが可能になります。
     印刷処理を対話的に行うための標準的な機能も提供されます。

リモートメソッドとオブジェクト転送:
 RMI(Remote Method Invocation)は メソッドを他の仮想マシンの上で実行させる仕組みです。 機種、OSの異なるマシンによって構築されたネットワーク内でも実現可能です。
 オブジェクト転送(Object Serialization)は、 オブジェクトの情報をバイトストリームの形式に変換して送り出し、 受け取り側で再構築する仕組みです。 上記のRMIもこのオブジェクト転送の技術を基にして実現されます。

JDBC(Java Database Connectivity):
 データベースのSQLへのインターフェイスを提供します。 JDBCの初期バージョンも既に公開されています。詳しくは下記のURLを見てください。

パフォーマンスの向上:
 グラフィックスの処理などでさまざまなパフォーマンスの向上が図られます。

JDK1.1の今後:
 1997年以降順次追加されていく予定のパッケージの中で特に興味深いのは、 三次元グラフィックス、Mpeg(ビデオ映像)やMIDI(音楽)など マルチメディアへの対応です。