java.lang.* パッケージと
|
目次 |
J2SE Development Kit 5.0 では、java.lang.*
および java.util.*
パッケージに、次のような機能拡張がなされています。
ProcessBuilder
クラスでは、Runtime.exec よりも簡単な方法で、サブプロセスを呼び出すことができます。実際、ProcessBuilder を使用すると、変更されたプロセス環境 (つまり、親のプロセス環境をベースにしてわずかに変更を加えた環境) でサブプロセスを開始することが簡単になりました。
Formatter
クラスでは、レイアウトの調整および位置ぞろえ、数値、文字列、および日付と時刻のデータの一般的な書式、さらにはロケール固有の出力について、サポートしています。byte
、java.math.BigDecimal
、java.util.Calendar
などの一般的な Java の型をサポートします。任意のユーザ型に対する限定的な書式のカスタマイズについては、java.util.Formattable
インタフェースを使用します。
java.util.Scanner
クラスは、テキストをプリミティブ型または String
型に変換します。
このクラスは java.util.regex
パッケージを基にしているため、ストリーム、ファイルデータ、文字列、または Readable
インタフェースの実装者に対する正規表現ベースの検索を実行する方法も用意されています。
java.util.concurrent
、java.util.concurrent.atomic
、および java.util.concurrent.locks
パッケージは、並行クラスやアプリケーションを開発するための、高パフォーマンス、スケーラブル、かつスレッドに対して安全な構築ブロックの拡張可能なフレームワークを提供します。スレッドプール、スレッドに対して安全なコレクション、セマフォ、タスクスケジューリングのフレームワーク、タスク同期のユーティリティ、基本変数、およびロックが含まれます。また、これらのパッケージでは、高度な並行プログラミング用の低レベルなプリミティブも用意しています。これらのプリミティブでは、プロセッサが提供する並行サポートを利用して、以前ではネイティブコードを使用しなければ実現できなかったほど高性能で拡大縮小可能な並列アルゴリズムを Java で実装できます。詳細は、JSR 166 を参照してください。
java.lang.instrument
パッケージでは、メソッドのバイトコードを実行時に変更することで Java プログラミングエージェントが仮想マシン上で実行されるプログラムを組み込むことを可能にするサービスを提供します。
java.lang.Thread
クラスには、次の機能拡張が追加されました。
Thread.State
列挙型クラスと、新しい getState()
スレッドの実行状態を問い合わせる API が用意されているThread
クラスの getStackTrace
および getAllStackTraces
メソッドではプログラミングによる方法で、1 スレッドまたはすべてのスレッドのスタックトレースを取得できるuncaughtExceptionHandler
機構が、 Thread クラスを介して直接利用できるようになったsleep()
メソッドの新しい形式により、1 ミリ秒未満のスリープ時間が可能になった
Java 2 SDK v1.4 では、java.lang.*
および java.util.*
パッケージの機能に対して、次の重要な拡張が適用されました。
java.util.prefs
パッケージが実装する Preferences API を使用すれば、ユーザおよびシステムの設定および構成データを、アプリケーションから格納および取得することができます。このデータは、実装ごとに異なるバッキングストアに持続的に保存されます。Preferences API は、java.util.Properties
クラスの使用頻度の高いプロパティを置き換える目的で設計されており、軽量さを維持しながら、さまざまな点を訂正しています。
java.util.regex
には、正規表現で指定されたパターンと文字シーケンスを照合するためのクラスが含まれています。
バージョン 1.3 の Java 2 SDK には、次の拡張が適用されています。
Java 2 プラットフォームには、次の 2 つのクラスが組み込まれ、一般的な数値演算を行うための API が提供されます。
次の新しい 2 つのクラスが、Java 2 プラットフォームに追加され、タイマー機能の API が提供されます。 この API は、アニメーション、ユーザ入力のタイムアウト、オンスクリーンの時計とカレンダ、ワークスケジュールルーチン、通知機能などの目的に使用できます。
Countdown.java は、新しい Timer API を使用した簡単なデモアプリケーションです。
Collections Framework には、次の新しい簡易 API が組み込まれています。
次の特定目的の実装が追加されました。
複雑なアプリケーションでは、多くの場合、予期した終了または予期しない異常終了にかかわらず、仮想マシン のシャットダウン時に特定のアクションを実行する機能が必要になります。標準では、ネットワーク接続がすべて閉じ、セッション状態が保存され、一時ファイルが削除されます。主要なオペレーティングシステムでは、ネイティブアプリケーションに対してこの機能が提供されています。 ただし、機能の詳細は、プラットフォームごとに異なります。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-2004 Sun Microsystems, Inc.All Rights Reserved.
|