以降のページでは、JDK 7 リリースで導入される Java 仮想マシンに関する大きな変更の一部について紹介します。
さらに、次の拡張機能が追加されています。
分野: HotSpot
Standard/Platform:Java SE 7 Update 1
概要:JIT およびループのバグ:Apache Lucene 開発者を含むさまざまな関係者から報告された 3 つのバグ、および Oracle で発見された 4 つ目の関連バグが JDK 7 Update 1 で修正されています。
RFE: 7070134, 7068051, 7044738, 7077439
分野: HotSpot
Standard/Platform:Java SE 7
概要:GetLocalInstance メソッドを追加するため、JVM/TI バージョン番号が 1.1 から 1.2 へ変更されています。
RFE: 7003782, 7004582
分野: HotSpot
Standard/Platform:JDK 7
概要: バージョン番号 51 を持つクラスファイルは専用の型チェック検証ツールを使用して検証されるため、該当するメソッドには StackMapTable 属性が必要です。バージョン 50 のクラスファイルについては、ファイル内のスタックマップが見つからないか正しくない場合に、HotSpot JVM が型推定検証ツールを (引き続き) フェイルオーバーします。このフェイルオーバー動作は、バージョン 51 (JDK 7 のデフォルトバージョン) のクラスファイルでは発生しません。
バージョン 51 クラスファイル内のバイトコードを変更するツールは、検証に合格するために、バイトコードに一致するようにスタックマップ情報を必ず更新する必要があります。
RFE: 6693236
分野: HotSpot
Standard/Platform:JDK 7
概要: JDK 7 では、intern された文字列が Java ヒープの永続世代に割り当てられなくなり、代わりに、アプリケーションによって作成されたほかのオブジェクトとともに Java ヒープの主要部分 (若い世代と古い世代) に割り当てられます。この変更によって、主要 Java ヒープに常駐するデータが多くなり、永続世代内のデータが少なくなるため、ヒープサイズの調整が必要になる場合があります。ほとんどのアプリケーションでは、この変更によってヒープ使用に比較的小さな違いしか見られませんが、多数のクラスをロードしたり String.intern() メソッドを多用したりする大きなアプリケーションでは、より大きな違いが見られます。
RFE: 6962931
分野: HotSpot
Standard/Platform:JDK 7
概要: コンカレントマークスイープコレクタ (CMS) のデフォルトのヒープサイズおよび形状パラメータが変更されました。新しい設定は、JDK 6 リリース以降に導入された、より高速なプラットフォームを利用します。CMS は、HotSpot 内のその他のコレクタと同様に、プラットフォーム上の利用可能な物理メモリーを使用してそのヒープをサイズ調整しながら、小さなコレクションに関連付けられた一時停止時間を「妥当」に維持するためにそのヒープを形状調整しようとします。ヒープの具体的な形状は、ほかの場合と同様にプラットフォームによって異なる場合があります。
ユーザーは、これらのデフォルト設定の全部または一部を、固有のニーズに合わせて、ヒープを明示的にサイズ調整または形状調整 (「ヒープチューニング」) することでオーバーライドできます。
このおよびその他のガベージコレクタのデフォルト設定の詳細は、「Heap Tuning Guide for JDK 6」を参照してください。
RFE: 6896099
分野: HotSpot
Standard/Platform:JDK 7
概要: JDK 6 リリースノートには CMS のパフォーマンス向上が含まれていました。JDK 5 によって提供される動作を引き続き使用するためのメカニズムを提供するために、CMSUseOldDefaults フラグが提供されました。このフラグは、いくつかの設定をデフォルト状態に戻しました。ここ数年間で、このフラグは最小限しか使用されておらず、ほとんどの顧客は改善された CMS パフォーマンスを選んでいます。CMSUseOldDefaults フラグは削除されています。
RFE: 7027529
分野: HotSpot
Standard/Platform:JDK 7
概要: このリリースの GarbageFirst (G1) ガベージコレクタは、試験的です。jstack や jmap などの一部のコマンド行ツールは、G1 コレクタを使用する際に正しく動作しない場合があります。
RFE: 6966967
分野: HotSpot
Standard/Platform:JDK 7
概要: JDK の以前のリリースでは (Solaris のみ)、Thread.interrupt() メソッドが一部のブロッキング I/O オペレーションに割り込み、ターゲットスレッドによって InterruptedIOException がスローされ、ソケットまたはファイルストリームを不整合な状態にしました。このいわゆる「割り込み可能なレガシー I/O サポート」は、JDK 7 で無効化されています。この Solaris 固有動作に依存していたアプリケーションは、コマンド行で -XX:+UseVMInterruptibleIO オプション付きで実行することで、このサポートを再度有効化できます。将来の JDK リリースでは、割り込み可能なレガシー I/O サポートが完全に削除される可能性があります。
RFE: 6554406