JavaTM 2 SDK, Standard Edition, version 1.4 の
|
目次
|
Java 2 SDK, Standard Edition, Version 1.4 の新機能の一覧を以下に示します。 以前のバージョンの SDK から継承される機能を含め、すべての機能の一覧については、「機能ガイド」を参照してください。
- Java 2 プラットフォーム
- XML 処理
- New I/O APIs
- セキュリティ
- Java 2DTM テクノロジ
- Image I/O Framework
- Java 印刷サービス
- AWT
- Swing
- ドラッグ&ドロップ
- ロギング API
- JavaTM Web Start 製品
- JavaBeansTM コンポーネントの長期持続性
- JDBCTM 3.0 API
- アサーション機能
- Preferences API
- 連鎖例外機能
- 推奨規格標準オーバーライド機構
- Java 仮想マシン
- パフォーマンス
- IPv6 を含むネットワークサポート
- RMI
- 直列化
- Java Naming and Directory InterfaceTM (JNDI)
- CORBA、Java IDL および RMI-IIOP
- JavaTM Platform Debugger Architecture
- 国際化
- JavaTM Plug-in 製品
- Collections Framework
- Accessibility
- 正規表現
- Math
- リフレクション
- Java Native Interface
- ツール
XML 処理用の JavaTM API が Java 2 プラットフォームに追加されました。 これにより、Java プラットフォーム API の標準的なセットで XML ドキュメントの基本処理を行うことができます。
New I/O (NIO) API は、バッファ管理、文字セットのサポート、正規表現マッチング、ファイル入出力、およびスケーラブルなネットワーク入出力の分野で新しい機能を提供し、パフォーマンスを向上させます。
java.security.cert
パッケージに新しいクラスやメソッドを持ち、これらにより認証パス (認証連鎖とも呼ぶ) の作成と検証を可能にする機能です。
java.security.Policy
API はプリンシパルベースのクエリーを扱い、デフォルト Policy の実装はプリンシパルベースの grant
エントリをサポートしています。 このように、どのコードが実行されているかだけではなく、どの「ユーザ」が実行しているかに基づいて、アクセス制御を実行できるようになりました。
Java 2D には、パフォーマンスの向上、オフスクリーンイメージ用ハードウェア高速化のサポート、プラグ可能イメージ入出力フレームワーク、新しい印刷サービス API、および新しいフォント機能など、数多くの新機能が含まれています。
Java Image I/O Framework は、ファイルに保存されネットワーク経由でアクセスされるイメージを扱うプラグイン可能なアーキテクチャを提供します。 この API は、イメージをロードしたり保存したりするための現行の API に比べて、柔軟性がかなり高く、機能も強力です。
新しい機能には、トランザクションのセーブポイントの設定、トランザクション実行後の結果セットの公開、準備された文のパラメータに関するメタデータの取得、自動生成された鍵の検索、および複数の結果セットの一時公開があります。 JDBC データ型には BOOLEAN と DATALINK という 2 つの新しいデータ型があります。DATALINK を使うとデータソース以外のデータを管理することができます。 このリリースでは、JDBC Service Provider Interface と Connector アーキテクチャの関係も構築します。
JavaTM 印刷サービスは新しい Java 印刷 API であり、クライアントアプリケーションとサーバアプリケーションで次のことが可能になります。
AWT パッケージの変更は、グラフィカルユーザインタフェースを表示するプログラムの堅牢さ、動作、およびパフォーマンスの向上に重点が置かれています。 これまでの実装は、新しい「フォーカスアーキテクチャ」に置き換わりました。ここではプラットフォームが異なるために生じるフォーカス関連のバグや、AWT コンポーネントと Swing コンポーネント間の非互換性について説明します。 新しい「フルスクリーン排他モード API」は、ウィンドウシステムを一時停止して画面に直接描画できる高性能グラフィックスをサポートします。ゲームやレンダリングを多用するアプリケーションでは便利な機能です。 ディスプレイ、キーボード、およびマウスがグラフィック環境でサポートされるかどうかを示す新しいグラフィック環境メソッドにより、「ヘッドレスサポート」が利用できるようになりました。 フレームの表示方法を完全に制御する必要があるアプリケーションで、ネイティブなフレーム装飾を無効にする機能が利用できるようになりました。この機能を使うと、ネイティブなタイトルバー、システムメニュー、ボーダ、またはネイティブなオペレーティングシステムに依存する画面コンポーネントがレンダリングされないようにすることができます。 要望の多かった「マウスホイール」(アジャストボタンの代わりにスクロールダイアルがあるマウス) が使用できるようになりました。Java の新しい組み込みサポートによりマウスホイールによるスクロールが可能です。 また、新しいマウスホイールリスナーを使ってマウスホイールの動作をカスタマイズすることもできます。 AWT パッケージは「64 ビット対応」に完全に変更され、Solaris マシンでは 64 ビットと 32 ビットアドレスで動作するようになりました。
多くの新機能が Swing に追加されました。 新しい「スピナ」コンポーネントは 1 行の入力フィールドで、ユーザは小さな上下の矢印ボタンを押して数字を変え、値を選択することができます。 新しい「書式付きテキストフィールド」コンポーネントでは、日付、数字、および文字列を書式化することができます (十進数の通貨だけを入力できるテキストフィールドなど)。 「Windows の Look & Feel」の実装は、2000/98 バージョンの機能も利用できるように更新されました。 新しい「ドラッグ&ドロップアーキテクチャ」は、コンポーネント間のシームレスなドラッグ&ドロップをサポートします。また、カスタマイズされた Swing コンポーネントにドラッグ & ドロップを簡単に実装することができます。これは、データモデルの詳細を記述するメソッドをいくつか書くだけで十分です。 Swing の進捗バーコンポーネントが拡張され、不確定状態をサポートするようになりました。「不確定進捗バー」は、完了度を表すのではなく、一定のアニメーションを使って時間のかかる操作が発生していることを表します。 要望に応えて、タブ付きペインコンポーネントを拡張し、「スクロール可能なタブ」をサポートするようになりました。 この機能により、すべてのタブが 1 つのタブ並びに収まらない場合でも、タブ付きペインコンポーネントでは、複数のタブ並びではなく、単一のスクロール可能なタブ並びが表示されます。 「ポップアップとポップアップファクトリ」の各クラスは、以前は package private でしたが、このバージョンでは public になったため、プログラマは独自のポップアップを作成できます。 新しい「フォーカスアーキテクチャ」は、全面的に Swing に統合されています。
Swing はアプリケーション間のデータ転送のサポートも提供します。 ドラッグ&ドロップ操作はデータ転送の要求であり、グラフィカルポインティングデバイスを使用したジェスチャーで指定します。 コピー/ペーストは、多くの場合、キーボードによってデータ転送が指定されます。 データ転送には、ドラッグ&ロップ (DnD) による形式と、カット、コピー、ペーストによってクリップボードに転送する形式の 2 つがあります。 「Swing のデータ転送」を参照してください。
Java ロギング API は、エンドユーザ、システム管理者、フィールドサービスエンジニア、およびソフトウェアの開発チームが分析するログレポートを作成することにより、ソフトウェアのサービス提供と顧客サイトでの保守を簡単に行うことができるようにするものです。 ロギング API では、アプリケーションまたはプラットフォームで発生したセキュリティの失敗、構成エラー、パフォーマンスの障害、バグなどの情報を取り込みます。
Java Web Start 製品は、J2SE 1.4.0 に同梱されている新しいアプリケーション配備技術です。Java Web Start を使うと、Web ページのリンクをクリックするだけでアプリケーションを起動できます。 そのアプリケーションがコンピュータに存在しない場合は、Java Web Start により、必要なすべてのファイルが自動的にダウンロードされます。 ダウンロード後は、ファイルがコンピュータ上にキャッシュされるため、デスクトップ上のアイコンかブラウザ上のリンクを使って、必要なときにいつでも起動できるようになります。 また、どの方法でアプリケーションを起動しても、常に最新バージョンのアプリケーションが起動されます。
新しい持続モデルは、Bean のグラフと持続性形式の変換を処理するために設計されました。 新しい API は、プロパティを表すテキストとして JavaBeans コンポーネントのグラフのアーカイブを作成するのに適しています。
JDBC 3.0 API は、パッケージの java.sql と javax.sql で構成されており、Java プログラミング言語からの一般的なデータアクセスを提供します。 JDBC 3.0 API を使うと、リレーショナルデータベース、スプレッドシート、フラットファイルなど、実質上あらゆるデータソースにアクセスすることができます。 JDBC テクノロジは、ツールと代替インタフェースを構築できる共通のベースも提供しています。
アサーション機能が Java 2 プラットフォームに追加されました。 アサーションは、プログラマがコンピュータプログラムの状態に関して真であるとする boolean 型の式です。 たとえば、リストをソートした後に、プログラマはそのリストが昇順であることを表明します。 実行時にアサーションを評価して妥当性を確認する方法は、コードの品質を向上させるもっとも強力な方法の 1 つで、プログラムの動作に関するプログラマの誤解をただちに検出することができます。
この新しい機能は、ユーザの設定と構成データを管理する簡単な API です。 アプリケーションには、ユーザ、環境、必要性の違いに合った設定と構成データが必要です。 アプリケーションは、このデータを格納、検索、変更できる必要があります。 Preferences API でこの要求を満たすことができます。 Preferences API は、java.util.Properties クラスの使用頻度の高いプロパティを置き換える目的で設計されており、軽量さを維持しながら、さまざまな点を訂正しています。
「推奨規格標準」は、Java Community ProcessSM (JCPSM) 以外の標準的なプロセスで定義された Java TM API です。 推奨規格標準は JCP の外部に定義されているため、Java 2 プラットフォームの新しいリリースが発表されるたびに改訂される可能性があります。 改訂版を利用するため、開発者およびソフトウェアベンダーは、推奨規格標準オーバーライド機構を使って、Sun Microsystems からリリースされたように、Java 2 プラットフォーム付属のものより推奨規格の新しいバージョンを提供することができます。
この新しい機能は、ある例外が別の例外の原因になったことを記録する共通の API を提供します。この API を使って、標準スタックバックトレースの一環として、ある例外の原因となっている例外や、「原因の連鎖」全体にアクセスできます。なお、この処理によって、既存のプログラムの作成者が追加作業を強いられることはありません。
このリリースの Java 仮想マシンにはいくつかの拡張機能があります。Classic 仮想マシンは J2SDK の一部として出荷されなくなりました。
- シグナル連鎖機能
- SolarisTM-SPARCTM プラットフォーム版での 64 ビットのサポート
- エラー報告機構
- その他の Java Native Interface (JNI) チェックを行うための新しいコマンド行オプション
- ガーベジコレクションイベントをログ記録する新機能
このリリースでは、プラットフォームの多くの領域でパフォーマンスの向上が図られています。 それらの詳細については、「パフォーマンスの向上」を参照してください。
新機能では、TCP ベースおよび UDP ベースのアプリケーションにおける IPv6 と、非接続/非結合ソケットがサポートされており、ソケットの作成、結合、および接続を柔軟に行えるようになりました。 Java Secure Socket Extension はソケットを介して送信されたデータを暗号化する機構です。新しいクラスURI
を使用すると、プロトコルハンドラがなくても URI の構築と構文解析が可能になります。 FTP プロトコルハンドラは、現在の標準に合わせてオーバーホールされました。 デフォルトの文字セットは UTF8 で、ほかの文字スキームも使用できるように API が追加されました。新しいクラス
NetworkInterface
でインタフェースとアドレスを列挙し、InetAddress
の JNDI DNS SP サポートでアプリケーションの Pure Java ネームサービスプロバイダを構成することができます。 TCP の帯域外データでレガシーアプリケーションをサポートします。UDP Connection 関数は OS に着信先アドレスを登録し、非同期エラーが UDP ソケットに返されるようにします。また SOCKS V5 と V4 TCP が全面的にサポートされ、使用するバージョンのプロキシとの自動ネゴシエーションにも対応しています。 また、ストリーミング、要求ヘッダと応答ヘッダの処理、およびエラー処理も改善されました。
リモート例外でもサーバ側のスタックトレースを保持
RMI ランタイム実装が、クライアント側のスタックトレースだけでなく、リモート呼び出しからスローされたサーバ側の例外のスタックトレース情報を保持するようになりました。 このため、こうした例外がクライアントコードにアクセスできるようになると、そのスタックトレースには、元のサーバ側のトレースデータに続いてクライアントサイドのトレースが格納されます。
RMIClassLoader
のサービスプロバイダインタフェース
java.rmi.server.RMIClassLoader
の一部の static メソッドの動作が、新しいサービスプロバイダインタフェースjava.rmi.server.RMIClassLoaderSpi
のインスタンスに委譲されました。 このサービスプロバイダオブジェクトを構成し、指定したアプリケーションに対する RMI の動的クラスロードの動作を拡張することができます。 デフォルトでは、サービスプロバイダは、RMIClassLoader
の static メソッドすべての標準動作を実装しています。 詳細は、RMIClassLoader
およびRMIClassLoaderSpi
のクラスドキュメントを参照してください。動的サーバホスト名
java.rmi.server.hostname
プロパティを動的に更新し、将来のエクスポートに新しいホスト名を割り当てることを指示できるようになりました。 したがって、エクスポートされるオブジェクトのスタブには、プロパティの更新後、新しいホスト名の値が含まれることになります。
このリリースには、次のような直列化 API の変更および拡張があります。
- データ直列化ストリームで非共有オブジェクトの直列化復元をサポート
- クラス定義メソッド readObjectNoData をサポート
- 重要なバグの修正
詳細は、「JNDI の拡張機能」を参照してください。
Java 2 プラットフォーム付属の ORB に、Portable Object Adapter (POA) 機能が追加されました。 ORB により、クライアントは、同一マシンまたは別のマシンで実行されているサーバがサポートするオブジェクト上で、メソッド呼び出しを実行できます。 プログラマは、POA 機能を使って異なる ORB 製品間で移植性があるオブジェクト実装を構築し、オブジェクトに持続性のあるアイデンティティのサポートを提供することができます。 その他にも、Portable Interceptors、Interoperable Naming Service、GIOP 1.2 のサポート、任意の値の動的管理、持続的なネームサービスをサポートする新ツールなどの新機能が用意されています。 J2SE 1.4 で新しく追加された Java IDL および RMI-IIOP の機能については、「J2SE 1.3 と 1.4 間での CORBA 機能の変更点」を参照してください。
高速デバッグ機能のサポート
Java HotSpot TM仮想マシンが「高速デバッグ機能」をサポートするようになりました。 以前のバージョンの HotSpot では、デバッグを有効にした場合、プログラムはインタープリタでしか実行されませんでした。 現在では、デバッグを有効にしてプログラムを実行する際、HotSpot テクノロジのパフォーマンス上の利点を存分に活用することができます。 パフォーマンスの改善により、実行時間の長いプログラムも以前より簡単にデバッグできるようになりました。 テストの高速実行、デバッガによる例外のスローも可能です。HotSwap
この機能が追加されたことにより、デバッガの制御のもとにクラスを更新できるようになりました。Instance Filters
インスタンスフィルタを指定する機能がEventRequests
に追加され、要求によって生成されるイベントを、現在実行中のインスタンスが指定されたオブジェクトになっているイベントだけに制限できるようになりました。他言語のデバッグのサポート
将来的には、Java Platform Debugger Architecture が拡張され、現在では Java プログラミング言語ソースに翻訳されている非 Java プログラミング言語ソースをそのままデバッグできるようになります。VMDeathRequests
対象 VM の終了通知を制御する要求を出して、クリーンシャットダウン同期を行えるようになりました。
Unicode 3.0 をサポート
J2SE 1.4 では、Unicode 3.0 の規格に基づいて文字を処理します。 これは、java.text パッケージの照合と双方向テキスト分析機能だけではなく、java.lang パッケージの Character クラスと String クラスにも影響を与えます。タイ語とヒンディー語をサポート
タイ語とヒンディー語が機能の全領域でサポートされるようになりました。 サポートされるロケールと書記体系の実装については、「サポートするロケール」を参照してください。Currency クラス
ロケールとは関係なく通貨を参照できるように、java.util.Currency が追加されました。 通貨換算で通貨を指定するための java.text.NumberFormat と関連クラスの新しいメソッドが提供されています。
Java Plug-in 1.4 には、さまざまな新機能があります。たとえば、ブラウザではなく Java Secure Socket Extension (JSSE) による HTTPS のサポート、ダウンロードの一部として JAR およびクラスファイルとともにその他のファイル (GIF、JPEG、AU など) をキャッシュに格納する拡張アプレットキャッシング、ブラウザでページを変更したあともアプレットを存続させるアプレットの持続性、ほとんどの JDK 1.1 アプレットを Java 2 や Microsoft Windows プラットフォームでもシームレスに実行できるようにするアプレット互換拡張機能、<APPLET> タグを使ってアプレットを起動する Java Plug-in のサポートなどがあります。バージョン 1.4 も、W3C によって定義された標準インタフェースによる DOM へのアクセス、アサーションおよびロギングのサポート、アプレットの可用性の拡張 (アプレットをロードする際の進捗バーのカスタマイズなど)、Java コンソールの拡張オプションによるアプレット実行時の動的再構成 (プロキシ設定、ポリシーファイルなど) といった機能を提供します。
J2SDK 1.4 の Collections Framework には、ランダムアクセスを通知するマーカインタフェース、等価ベースではなく識別情報ベースのマップ、挿入順保存マップとセットの実装、リストの値を操作して返す新しいアルゴリズムなど、いくつかの拡張機能があります。 詳細は、「Collections Framework の拡張機能」を参照してください。
新しい機能には、次のサポートが含まれています。
- JTabbedPane でのニーモニックタブナビゲーション
- ユーザ補助機能によるテキスト編集
- HTML コンポーネントのユーザ補助機能
- Swing アクションのユーザ補助機能
- リスト項目の頭文字を使ったリストナビゲーション
- コンポーネントロール DATE_EDITOR、FONT_CHOOSER、GROUP_BOX、SPIN_BOX、STATUS_BAR
- 画面拡大機能や画面読み取り機能の存在を示すプロパティ、または Java 仮想マシンにロードされる補助テクノロジを指定するプロパティ
新しいパッケージ java.util.regex には、正規表現で指定されたパターンに対して文字シーケンスをマッチングするためのクラスが含まれています。
呼び出し側で確実性を指定する必要のない、新しい効率的な素数生成メソッドがクラス java.math.BigInteger に追加されました。
特定のリフレクション操作、特に java.lang.reflect.Field、java.lang.reflect.Method.invoke()、java.lang.reflect.Constructor.newInstance()、および Class.newInstance() がより高度なパフォーマンスに合わせて書き直されています。 リフレクトによる呼び出しやインスタンス化は、以前のリリースに比べ数倍速くなりました。
バージョン 1.4 では、JNI に若干の変更が加えられています。 まず、バージョン番号が大きくなり、これに伴って JNI_OnLoad の指定も更新されました。 さらに、java.nio パッケージの新しい機能である「直接バッファ」を反映するために JNI が拡張されました。直接バッファのコンテンツは、通常のガベージコレクトされたヒープの外側の、ネイティブメモリ内に格納することができます。 最後に、新しい Invocation Interface ルーチン AttachCurrentTreadAsDaemon により、ネイティブコードで仮想マシンにデーモンスレッドを追加できるようになりました。この機能は、停止にあたって VM がこのスレッドの終了を待たない場合に便利です。 これらの拡張機能の詳細については、「JNI の拡張機能」を参照してください。
ここで説明した変更についての詳細は、「ツールの変更点」を参照してください。
Copyright © 2002 Sun Microsystems, Inc. All Rights Reserved. |
|