Java 2 SDK v1.3 の java.lang および java.util.* の機能拡張 |
ドキュメントの目次 |
Java 2 SDK のバージョン 1.3 には、次の拡張が行われています。java.lang.Math クラスと java.lang.StrictMath クラス
新しい Timer API
Collections Framework の拡張
仮想マシンのシャットダウンフック
新しい URL JAR ファイルキャッシュ
java.lang.Math クラスと java.lang.StrictMath クラスJava 2 プラットフォームには、次の 2 つのクラスが組み込まれ、一般的な数値演算を行うための API が提供されます。
- java.lang.StrictMath - java.lang.StrictMath クラスの API は、従来の java.lang.Math クラスの API と同じです。java.lang.Math クラスは、以前のバージョンの Java プラットフォームから存在しています。ただし、Math クラスと異なり、StrictMath クラスは、すべての実装でビットごとの再現可能な結果を返すように定義されています。
- java.lang.Math - クラス java.lang.Math は、クラス StrictMath と同じ API のセットを提供します。ただし、クラス StrictMath の一部の数値関数とは違って、クラス Math の等価な関数のすべての実装は、ビット単位まで同じ結果を返すようには定義されておらず、特定の制約内で結果が異なることがあります。このため、厳密な再現性が要求されない実装においてパフォーマンスの向上が可能になります。
次の新しい 2 つのクラスが、Java 2 プラットフォームに追加され、タイマー機能の API が提供されます。 この API は、アニメーション、ユーザ入力のタイムアウト、オンスクリーンの時計とカレンダ、ワークスケジュールルーチン、通知機能などの目的に使用できます。 Countdown.java は、新しい Timer API を使用した簡単なデモアプリケーションです。Collections Framework には、次の新しい簡易 API が組み込まれています。次の特定目的の実装が追加されました。
- java.util.Collections.singletonList と java.util.Collections.singletonMap の追加。以前は、単独 Set の簡易実装はあったが、List および Map の簡易実装はなかったユーザからの要望に応えて追加した実装です。
- java.util.Collections.EMPTY_MAP の追加。従来は、空の Set および List の簡易実装 (不変) は存在していましたが、Map に対応する実装は存在しませんでした。
- WeakHashMap 用マップコンストラクタの追加。 Map インタフェースには、Map 引数を取る「コピーコンストラクタ」がほとんどの Map の実装で必要であると定義されている。リリース 1.2 では、WeakHashMap にこのようなコンストラクタはなかった
複雑なアプリケーションでは、多くの場合、予期した終了または予期しない異常終了にかかわらず、仮想マシンのシャットダウン時に特定のアクションを実行する機能が必要になります。標準では、ネットワーク接続がすべて閉じ、セッション状態が保存され、一時ファイルが削除されます。主要なオペレーティングシステムでは、ネイティブアプリケーションに対してこの機能が提供されています。 ただし、機能の詳細は、プラットフォームごとに異なります。java.lang.Runtime には、3 つのメソッドが追加され、この機能に対して移植性のある簡単なインタフェースが提供されます。新しいメソッドは次の 3 つです。 また、Runtime.exit メソッドも改訂されました。詳細は、「シャットダウンフック API の設計」を参照してください。クラス java.util.zip および java.util.jar の API が拡張され、次のモードが追加されました。 ダウンロードされた Jar ファイルをキャッシュするときに、以前の実装では、長時間実行しているサーバアプリケーションおよび RMI で障害が発生していました。JarURLConnection を開くと、Jar ファイルの日付を保持する一時ローカルファイルがそれぞれ作成され、JarFile オブジェクトがその一時ファイルの先頭に作成されます。このとき、各一時ファイル上で開いているファイルハンドルおよび記述子が閉じなかったため、サーバアプリケーションを長時間実行している場合は、一時ファイルによってディスク容量がすぐにいっぱいになる可能性があります。この新しい API では、Zip ファイルおよび Jar ファイルを開くときに、新しい delete-on-close モードを使用できるので、この問題を解決することができます。
Copyright © 1999 Sun Microsystems, Inc. All Rights Reserved. コメントの送付先: jdk-comments@java.sun.com |