Java Platform, Standard Edition 8(Java SE 8)は、主要機能リリースです。このドキュメントでは、Java SE 8と、Java SE 8のOracle実装であるJDK 8に含まれる機能と拡張機能についてまとめます。コンポーネント名をクリックすると、そのコンポーネントの拡張機能に関する詳細説明が表示されます。
java.util.streamパッケージのクラスでは、要素のストリームに対して関数スタイルの操作をサポートするStream APIが提供されます。Stream APIはCollections APIに統合されているため、コレクションに対するバルク操作(順次的または並列的なマップ - リデュース変換など)が可能です。
コンパクト・プロファイルには、Java SEプラットフォームの事前定義サブセットが含まれます。この機能により、完全なプラットフォームを必要としないアプリケーションを小型デバイス上にデプロイして実行できます。
AccessController.doPrivilegedの新しいバリアントにより、スタック全体を横断するその他の権限チェックを妨げることなく、コードで一部の権限をアサートできます。
java.security.DomainLoadStoreParameter、およびkeytoolユーティリティの新しいコマンドオプション-importpasswordなどが追加されました。
java.security.cert.PKIXRevocationCheckerクラスが追加されました。
SwingNodeクラスを使用して、SwingコンテンツをJavaFXアプリケーションに埋め込むことができます。SwingNodeのjavadoc、および「JavaFXアプリケーションへのSwingコンテンツの埋め込み」を参照してください。
javafx.printパッケージで、JavaFX Printing API用のパブリッククラスが提供されます。詳細についてはJavaDocを参照してください。
Shape3D(サブクラスはBox、Cylinder、MeshView、およびSphere)、SubScene、Material、PickResult、LightBase(サブクラスはAmbientLightおよびPointLight)、SceneAntialiasingがJavaFX 3D Graphicsライブラリに追加されました。このリリースでは、Camera APIクラスも更新されています。詳細については、javafx.scene.shape.Shape3D、javafx.scene.SubScene、javafx.scene.paint.Material、javafx.scene.input.PickResult、javafx.scene.SceneAntialiasingの該当クラスのJavadoc、および「JavaFX 3D Graphicsを開始する」ドキュメントを参照してください。
WebViewクラスに新機能と拡張機能が追加されます。Webソケット、Webワーカー、WebフォントなどのHTML5の追加機能については、「HTML5でサポートされる機能」を参照してください。
jjsコマンドが提供されます。
javaコマンドによってJavaFXアプリケーションを起動できます。
javaのmanページが改訂されました。
jdepsコマンドラインツールが提供されます。
jarsignerツールに、タイムスタンプ局(TSA)による署名付きタイムスタンプをリクエストするためのオプションが追加されました。
javacコマンドの-parametersオプションを使用して仮パラメータ名を保管し、Reflection APIにより仮パラメータ名を取得できます。
javacコマンドによって正しく適用されるようになりました。
javadocの実行時に生成されるファイル内でさまざまなトラブル(無効なHTML、アクセス可能性の問題など)を引き起こすような問題がjavadocコメント内容に含まれているかどうかを、javacツールでチェックできるようになりました。この機能は、新しい-Xdoclintオプションによって有効化されます。詳細については、javac -Xの実行結果を参照してください。この機能はjavadocツールでも使用でき、デフォルトで有効です。
javacツールに、必要に応じてネイティブヘッダーを生成する機能が追加されました。この機能により、ビルドパイプラインの個別の手順としてjavahツールを実行する必要がなくなります。この機能を有効にするには、javacの新オプション-hを使用します。このオプションを使用して、ヘッダーファイルを書き込むディレクトリを指定します。ヘッダーファイルは、ネイティブメソッド、またはjava.lang.annotation.Native型の新しいアノテーションが付けられた定数フィールドを含むすべてのクラスに対して生成されます。
javadocツールでは新しいDocTree APIがサポートされます。このAPIを使用すると、Javadocコメントを抽象構文ツリーとしてトラバースできます。
javadocツールで新しいJavadoc Access APIがサポートされます。このAPIを使用すると、新しいプロセスを実行しなくても、Javaアプリケーションから直接Javadocツールを起動できます。詳細については、Javadocの新機能のページを参照してください。
javadocの実行時に生成されるファイル内でさまざまなトラブル(無効なHTML、アクセス可能性の問題など)を引き起こすような問題がjavadocコメント内容に含まれているかどうかを、javadocツールでチェックできるようになりました。この機能はデフォルトで有効であり、新しい-Xdoclintオプションで制御することもできます。詳細については、javadoc -Xの実行結果を参照してください。この機能はjavacツールでも使用できますが、javacではデフォルトで無効です。
URLPermissionを使用して、アプレットやアプリケーションの起動元サーバーに接続を戻すことができるようになりました。SocketPermissionは付与されなくなりました。
Date-Timeパッケージ - 包括的な日時モデルを提供する新しいパッケージセットです。
SelectorProvider実装が追加されました。使用するには、システムプロパティjava.nio.channels.spi.Selectorの値をsun.nio.ch.EventPortSelectorProviderに設定します。
<JDK_HOME>/jre/lib/charsets.jarファイルのサイズが削減されました。
java.lang.String(byte[], *)コンストラクタおよびjava.lang.String.getBytes()メソッドのパフォーマンスが向上しました。
java.net.URLPermissionクラスが追加されました。
java.net.HttpURLConnectionクラスでは、接続を開くリクエストの呼び出しに権限が必要になります。
java.util.concurrentパッケージにクラスとインタフェースが追加されました。
java.util.concurrent.ConcurrentHashMapクラスに、新規に追加されたストリーム機能とラムダ式に基づいた集計操作に対応するためのメソッドが追加されました。
java.util.concurrent.atomicパッケージに、スケーラブルな更新可能変数に対応するためのクラスが追加されました。
java.util.concurrent.ForkJoinPoolクラスに、共有プールに対応するためのメソッドが追加されました。
java.util.concurrent.locks.StampedLockクラスが追加されました。
UseAESおよびUseAESIntrinsicsフラグを使用できるようになりました。ハードウェアは、バージョン2010年以降のWestmereハードウェアである必要があります。
注:AES組み込み関数は、Server VMでのみサポートされます。
たとえば、ハードウェアAESを有効にするには、次のフラグを使用します。
-XX:+UseAES -XX:+UseAESIntrinsics
ハードウェアAESを無効にするには、次のフラグを使用します。-XX:-UseAES -XX:-UseAESIntrinsics