Java 2 SDK 開発ガイド (Solaris 編)

新しい機能と強化された機能

Java 2 SDK, Standard Edition (J2SETM) バージョン 1.4 の新しい機能を以下に示します。機能全体の一覧 (Java 2 SDK, Standard Edition の以前のバージョンから繰り越された機能も含む) については、http://java.sun.com/j2se/1.4/ja/docs/ja/index.html を参照してください。

Java 2 Platform

XML 処理

Java 2 Platform には XML 処理用の Java API が追加されました。J2SE 1.4.0 は基本的に XML 文書の処理を API 標準セットでサポートします。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/xml/index.html を参照してください。

New I / O API

新しい入出力 (NIO) API は、バッファの管理、文字セットのサポート、正規表現のマッチング、ファイルの入出力、およびスケーラブルなネットワークの入出力に新しい機能と強化された機能を提供します。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/nio/index.html を参照してください。

セキュリティ

J2SE 1.4 におけるセキュリティの詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/security/index.html を参照してください。

Java 2DTM テクノロジ

Java 2DTM 技術には、性能の向上、オフスクリーン画像のハードウェア高速化のサポート、プラグイン可能な画像入出力フレームワーク、新しい印刷サービス API、いくつかの新しいフォント機能など、新しい機能が数多く含まれています。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/2d/new_features.html を参照してください。

Image I/O フレームワーク

Java の Image I/O フレームワークが提供するプラグイン可能なアーキテクチャを使用すれば、ファイルに格納されている画像にネットワーク経由でアクセスして処理できます。このフレームワークでは、画像のロードと保存のための API が J2SE 1.4 以前のものよりもはるかに柔軟で強力な機能を提供します。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/imageio/index.html を参照してください。

Java 印刷サービス API

Java 印刷サービスは新しい Java 印刷サービス API であり、クライアントとサーバのアプリケーションは次のことを行います。

詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/jps/index.html を参照してください。

AWT

Abstract Window Toolkit (AWT) パッケージセンターが変更されて、グラフィカルユーザインタフェースを提供するプログラムの堅牢性、動作、および性能が改善されました。次の点が改善されています。

詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/awt/AWTChanges.html を参照してください。

Swing

Swing には、新しい機能が数多く追加されました。

Swing では、いくつかの機能が強化されました。

詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/swing/SwingChanges.html を参照してください。

ドラッグ&ドロップ

Swing は、アプリケーション間のデータ転送に新しいサポートを追加しました。ドラッグ&ドロップ操作とは、グラフィカルなポインティングデバイスでのジェスチャーによって特定されるデータ転送要求のことです。コピー / ペーストの場合、データ転送は多くの場合キーボードから行われます。データ転送には、ドラッグ&ドロップによるデータ転送と、カット / コピー / ペーストによるクリップボード経由のデータ転送の 2 つの形式があります。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/swing/1.4/dnd.html を参照してください。

ロギング API

Java の ロギング API は顧客サイトにおけるソフトウェアのサービスおよび保守を簡単にするものであり、エンドユーザ、システム管理者、フィールドサービスエンジニア、およびソフトウェア開発チームによる解析に適したログレポートを生成します。ロギング API は、アプリケーションまたはプラットフォームにおけるセキュリティの障害、構成のエラー、性能のボトルネック、バグなどの情報を捕捉します。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/util/logging/index.html を参照してください。

JavaTM Web Start 製品

Java Web Start 製品は J2SE 1.4.0 にバンドルされている新しいアプリケーション配備テクノロジです。Java Web Start を使用すると、Web ページのリンクをクリックするだけでアプリケーションを起動できます。アプリケーションがユーザのコンピュータ上に存在しない場合、Java Web Start は自動的に必要なファイルをすべてダウンロードします。そして、Java Web Start はダウンロードしたファイルをユーザのコンピュータに格納するので、ユーザはいつでもそのアプリケーションをデスクトップ上のアイコン、または Web ページのリンクから起動することができます。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/jws/index.html を参照してください。

JavaBeansTM コンポーネントの長期的な持続性

新しい持続モデルは、JavaBeans のグラフを持続形式にまたは接続形式から変換するときのプロセスを処理するように設計されています。新しい API は JavaBeans コンポーネントのグラフのアーカイブをそのプロパティのテキスト表現として作成するのに適しています。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/beans/changes14.html を参照してください。

JDBCTM 3.0 API

JDBCTM 3.0 API には java.sqljavax.sql のパッケージが含まれており、Java プログラミング言語からの汎用データアクセスを提供します。JDBC 3.0 API を使用すると、リレーショナルデータベースからスプレッドシートや通常のファイルまで、ほとんどどのデータソースにもアクセスできます。さらに、JDBC テクノロジは、ツールや代替インタフェースが構築することができる共通の基礎を提供します。

JDBC 3.0 API を使用すると、次のことを行うことができます。

新しい JDBC データタイプには BOOLEAN DATALINK の 2 つがあります。DATALINK タイプを使用すると、データソースの外からデータを管理できます。このリリースはまた、JDBC Service Provider Interface と Connector アーキテクチャ間に関係を確立します。

詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/jdbc/index.html を参照してください。

アサーション機能

Java 2 Platform にはアサーション機能が追加されました。アサーションとは、プログラマがコンピュータプログラムの状態について真であると信じていることを示すブール型式のことです。たとえば、一覧をソートした後、プログラマはその一覧が昇順であることを表明できます。実行時にアサーションを評価して妥当性を確認すると、プログラムの動作についてのプログラマの思い違いを素早く見つけることができるので、コードの品質を向上させるためのもっとも強力なツールの 1 つとなります。詳細については、このマニュアルの「アサーション機能」を参照してください。

Preferences API

Preferences API は、ユーザの設定および構成データを管理するための新しい簡単な API です。アプリケーションは異なるユーザ、環境、およびニーズに適合するために設定および構成データを必要とします。アプリケーションはこのような設定および構成データを格納、取得、および変更するための方法を必要とします。このニーズに適合するのが Preferences API です。Preferences API は java.util.Properties クラスのもっとも一般的な使用方法を置き換えるものであり、このクラスの軽量さを保持しながら、さまざまな点を訂正しています。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/lang/preferences.html を参照してください。

推奨標準優先機構

推奨標準とは、Java Community Process (JCP) 以外の標準化プロセスで定義された Java API のことです。推奨標準は JCP 以外で定義されているので、Java 2 Platform のリリース間に改訂されることがあります。推奨標準優先機構を使用すると、開発者とソフトウェアベンダーは推奨標準の新しいリビジョンの恩恵を受けることができ、Sun からリリースされている Java 2 Platform に含まれている推奨標準よりも新しいバージョンを提供できます。推奨標準優先機構の詳細については、http://java.sun.com/j2se/1.4/docs/guide/standards/ にある Web 上のドキュメントを参照してください。

64 ビットサポート

Java HotSpotTM Server VM を使用する場合、Solaris オペレーティング環境 (SPARC 版) の J2SE 1.4.0 は 64 ビット SPARC V9 プラットフォーム上での 64 ビット動作をサポートします。これによって、4G バイト (32 ビット VM がサポートできる絶対最大値) より大きなヒープをサポートできます。Java HotSpot Server VM では、適切なコマンド行フラグを使用することによって、32 ビットまたは 64 ビットのどちらかの動作をさせることができます。64 ビット VM を使用する場合、ユーザのプログラムが参照変数をアクセスするのに費やす時間によって異なりますが、約 15% から 25% の性能の低下が見られることがあります。64 ビット VM を使用する場合、J2SE 1.4.0 は 32 ビット共有ライブラリをサポートしません。ネイティブ (Java Native Interface) コードは 64 ビットモードでコンパイルし直す必要があります。

JavaTM HotSpot 仮想マシン (VM)

このリリースの Java 仮想マシンでは、いくつかの機能が強化されました。

詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/vm/index.html を参照してください。

性能

このリリースでは性能も強化されました。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/performance/index.html を参照してください。

ネットワークのサポート (IPv6 を含む)

新しい機能には TCP と UDP に基づくアプリケーションにおける IPv6 のサポートと接続 (バインド) されていないソケットのサポートが含まれており、より柔軟にソケットを作成、バインド、および接続できるようになりました。Java Secure Socket Extension という機構はソケット経由で送信されるデータを暗号化し、新しいクラス URI はプロトコルハンドラが存在しなくても URI を構築および構文解析できるようにします。FTP Protocol Handler は現在の標準に準拠するように徹底的に見直されました。デフォルトの文字セットは現在 UTF8 であり、他の文字スキームを有効にするための API が追加されました。

新しいクラス NetworkInterface を使用するとインタフェースとアドレスを列挙できるようになり、InetAddress の JNDI DNS SP Support を使用すると Pure Java ネームサービスプロバイダを構成できるようになります。TCP 帯域外データは従来のアプリケーションをサポートします。つまり、UDP Connection 機能は宛先アドレスを OS に登録するので、非同期エラーを UDP ソケットに戻すことができます。また、完全な SOCkS V5 と V4 TCP サポートには、どのバージョンを使用するかについてのプロキシとの自動ネゴシエーションが含まれています。さらに、ストリーミング、要求ヘッダーと応答ヘッダーの処理、およびエラー処理において改良が行われました。

詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/net/enhancements14.html を参照してください。

RMI

RMI ランタイム実装では現在、以前のリリースで行われていたクライアント側のスタックトレース情報の保存に加えて、リモート呼び出しからスローされた例外についてのサーバ側のスタックトレース情報も保存します。したがって、このような例外がクライアントコードにアクセス可能になったとき、クライアントのスタックトレースには、クライアント側のトレースデータに続く、オリジナルのサーバ側のトレースデータがすべて含まれています。

J2SE 1.4.0 では、java.rmi.server.RMIClassLoader の特定の静的なメソッドが自分の動作を新しいサービスプロバイダインタフェース java.rmi.server.RMIClassLoaderSpi に委譲します。このサービスプロバイダオブジェクトを構成すると、特定のアプリケーションに対する RMI の動的クラスロード動作を強化できます。デフォルトでは、サービスプロバイダは RMIClassLoader のすべての静的なメソッドについて標準の動作を実装します。

現在では、java.rmi.server.hostname プロパティを動的に更新することによって、将来のエクスポートで新しいホスト名を使用することを示すことができます。したがって、新しいホスト名は上記プロパティが更新された後にエクスポートされたオブジェクトのスタブに含まれるようになります。

詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/rmi/relnotes.html を参照してください。

直列化

このリリースの直列化 API の機能には、次の変更と強化が行われました。

詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/serialization/relnotes14.html を参照してください。

Java Naming and Directory InterfaceTM (JNDI)

J2SE 1.4.0 では、Java Naming and Directory InterfaceTM (JNDI) に次の機能強化が行われました。

詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/jndi/index.html#14changes を参照してください。

CORBA、JavaTM IDL、および RMI-IIOP

Java 2 Platform の一部として出荷される ORB には現在、Portable Object Adapter (POA) 機能が含まれています。ORB を使用すると、クライアントは、同じまたは異なるマシン上で動作しているサーバがサポートしているオブジェクト上で、メソッド呼び出しを行うことができます。POA 機能を使用すると、プログラマは異なる ORB 製品間で移植可能なオブジェクト実装を構築できるので、たとえば、持続性のある識別情報を持つオブジェクトをサポートできます。ほかにも、Portable Interceptors、Interoperable Naming Service、GIOP 1.2 のサポート、Dynamic Management of Any values などの新しい機能や、持続ネーミングサービスなどの機能をサポートする新しいツールが含まれます。

J2SE v.1.3 と J2SE v.1.4 における Java IDL の違いの詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/idl/jidlChanges.html を参照してください。一般的な情報については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/idl/index.html を参照してください。

JavaTM Platform Debugger Architecture 製品

機能強化された Java Platform Debugger Architecture を含んだ J2SE 1.4.0 は、次の新しい機能を持つようになりました。

国際化

J2SE 1.4.0 における文字の処理はバージョン 3.0 の Unicode 標準に基づいています。このような文字の処理は、java.lang パッケージ内の Character クラスと String クラスに影響を与えると同時に、java.text パッケージ内の照合と双方向テキスト解析機能にも影響を与えます。

J2SE 1.4.0 は Thai (タイ語) と Hindi (ヒンディー語) をすべての機能においてサポートします。サポートされるロケールと書記法の詳細については、『サポートされているロケール』オンライン文書を参照してください。

クラス java.util.Currency が導入されて、ロケールとは無関係に通貨を参照できるようになりました。java.text.NumberFormat には、金額を書式化するための通貨を指定する新しいメソッドとそれに関連するクラスが追加されました。

JavaTM Plug-in 製品

Java Plug-in 1.4 には、次の新しい機能が追加されました。

Java Plug-in 1.4 は次の機能を提供します。

詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/plugin/index.html を参照してください。

Collections フレームワーク

J2SE 1.4 で強化された Collections フレームワークの機能には、ランダムアクセスを公示するためのマーカーインタフェース、同値性ではなく同一性に基づいた Map、挿入順に保存する Map と Set の実装、および一覧の値を操作および返すためのいくつかの新しいアルゴリズムが含まれます。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/collections/changes4.html を参照してください。

ユーザ補助機能

J2SE 1.4.0 は、次の分野でユーザ補助機能の新しいサポートを提供します。

詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/access/index.html を参照してください。

正規表現

新しいパッケージ java.util.regex には、正規表現で指定されたパターンに文字シーケンスを一致させるためのクラスが含まれています。詳細については、http://java.sun.com/j2se/1.4/docs/api/java/util/regex/package-summary.html にある java.util.regex 用の API 指定を参照してください。

数値演算

呼び出し側が確実性を指定しなくても素数を生成できる新しい効率的なメソッドが java.math.BigInteger に追加されました。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/math/enhancements14.html を参照してください。

リフレクション

一部のリフレクション操作、特に、java.lang.reflect.Field java.lang.reflect.Method.invoke()Java.lang.reflect.Constructor.newInstance()、および Class.newInstance() がより高い性能のために書き直されました。リフレクションの呼び出しとインスタンス化は以前のリリースと比べて何倍も速くなっています。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/reflection/index.html を参照してください。

JavaTM Native Interface (JNI)

J2SE 1.4 では、Java Native Interface (JNI) が強化されて、java.nio パッケージの新しい機能「ダイレクトバッファ」を反映するようになりました。ダイレクトバッファの内容は潜在的に、通常のガベージコレクトされたヒープの外側にあるネイティブメモリ内に格納できます。また、新しい呼び出しインタフェースルーチン AttachCurrentTreadAsDaemon を使用すると、ネイティブコードはデーモンスレッドを仮想マシンに接続できます。これは、シャットダウン時に、このスレッドが終了するのを VM が待つ必要がないときに便利です。詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/guide/jni/jni-14.html にある『JNI Enhancements』オンライン文書を参照してください。

ツールとユーティリティ

詳細については、http://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/tools-changes.html にある『ツールの変更点』オンライン文書を参照してください。