J2SE 1.3.0 では、Sun と協力関係にある企業との協議の結果や開発者からの要望に応えて、新たな機能がプラットフォームや Java 2 SDK ツールスイートに追加されています。拡張機能には、次のものがあります。
新しい javac コンパイラ
J2SE 1.3 では、javac コンパイラがゼロから再実装され、前回のバージョンの Java 2 SDK のコンパイラと比べて、多くのアプリケーションを高速で処理できます。
動的なプロキシクラス
J2SE 1.3 には、動的プロキシクラスに対する新しい API が組み込まれています。動的なプロキシクラスは、実行時に指定される一連のインタフェースを実装するもので、そのクラスのインタフェースを通してメソッド呼び出しはコード化され、別のオブジェクトに統一的なインタフェースを介して振り分けられます。したがって、動的プロキシクラスを使用して、一連のインタフェースに対する型安全 (type-safe) なプロキシオブジェクトが作成でき、コンパイル時ツールなどを使用してプロキシクラスを事前に生成しておく必要がありません。インタフェース API が示されたオブジェクトに対し型安全な呼び出しの反射的な振り分けを提供したい開発者にとって、動的なプロキシクラスは便利です。
たとえば動的プロキシクラスを使用して、任意のイベントリスナーインタフェースを複数実装するオブジェクトを作成し、そのイベントをログファイルに書き込むなど、一貫した方法で多種多様なイベントを処理することができます。
コレクション API の拡張
コレクション API の J2SE 1.3 バージョンが使いやすくなりました。1.3 のコレクション API には、List や Mapに対応した便利なメソッドやコピーコンストラクタが組み込まれています。
拡張 Java 基本クラス / Swing 機能
J2SE 1.3.0 の設計時には、Java 基本クラス API の Swing コンポーネントのチューニングや機能拡張に重点が置かれました。また、Swing ライブラリの性能のチューニングに加えて、いくつかの分野で新しい JFC/Swing 機能が Swing ライブラリに追加されました。一例として、軽量テーブルコンポーネントの可変的な高さの行が、新たにサポートされるようになりました。
数字ライブラリやユーティリティライブラリの改善
J2SE 1.3.0 には、同じ API を持つ数学に関連した 2 つのクラス、Math と StrictMath が組み込まれています。StrictMath は、数値演算に対してビット単位で再現可能な結果を返すものとして、その保証を必要とする開発者向けに定義されています。一方、Math クラスの実装は、指定された制約条件の中で変更されることがあり、パフォーマンスの向上を柔軟に図ることができます。パフォーマンスの向上は望んでいるが、複数のプラットフォームでビットごとの再現可能な結果は必要でないという開発者であれば、数値コードに StrictMath ではなく、Math を使用することができます。
任意精度算術演算用の J2SE API である BigInteger クラスと BigDecimal クラスでは、桁あふれを起こしたり精度が下がることがない数値演算が可能で、財務関連の計算など、さまざまな計算に不可欠な機能です。BigInteger クラスは、純粋な Java プログラミング言語コードに再実装されています。以前は、BigInteger クラスの実装は下位の C ライブラリをベースにしていました。新しい実装では、大半の標準的な演算が従来の実装より高速に実行できます。また、新しい API は新たに便利な機能が提供されており、使いやすくなっています。
新しい Timer API が Java 2 Platform に追加され、アニメーション、人間の操作に対するタイムアウト、画面上の時計とカレンダー、仕事のスケジューリングルーチン、忘備機能などがサポートされるようになりました。
仮想マシンのシャットダウンフック用の API が、java.lang.Runtime クラスに追加されています。これにより、ネットワーク接続の切断、セッション状態の保存、一時ファイルの削除など、Java プログラミング言語で書かれたアプリケーションがシャットダウンの動作を開始できるように、下位のオペレーティングシステムのプロセスシャットダウン通知機能に対し、簡単で移植性があるインタフェースが提供されています。
Zip ファイルや Jar ファイルを開くときに、新たに「終了時に削除」モードが追加され、長時間稼動しているサーバーアプリケーションは不要となった JarFile オブジェクトやデータを削除し、ディスク容量を解放できるようになりました。