原文はこちら。
https://blogs.oracle.com/thejavatutorials/entry/jdk_8_documentation_developer_preview
開発者がJDK 8の機能を調べるのに役立つ、Java Development Kit Release 8 (JDK 8) Early Access Documentationが改善、アップデートされました。ドキュメントは開発者ガイド(Developer Guides)、チュートリアル(The Java Tutorials)、APIドキュメント(API Documentation)からなります。
Java Platform Standard Edition 8 Early Access Documentation
http://download.java.net/jdk8/docs/
The Java Tutorials
http://docs.oracle.com/javase/tutorial/
Java™ Platform, Standard Edition 8 API Specification
http://download.java.net/jdk8/docs/api/
JDK 8のEarly AccessはJDK 8 Projectからダウンロードできます。
JDK 8 Project
http://jdk8.java.net/
Project Feedbackフォーラムを使ってJDK 8への提案や、JDK 8利用時に発生した問題をお知らせ下さい。
Java SE Snapshots: Project Feedback
https://www.java.net//forums/jdk/java-se-snapshots-project-feedback
このリリースで不具合を発見されましたら、通常のJava SEバグレポートチャネルに投稿して下さい。
Report a Bug or Request a Feature
http://bugreport.sun.com/bugreport/
以後では特定のJDK 8の強化ポイントに対応するドキュメントをご紹介します。
以下の機能強化がJava言語やJDKライブラリに施されています。
Lambda Expressions
ラムダ式を使うと、関数をメソッド引数としてもしくはコードをデータとして扱うことができます。また、単一メソッドクラスのインスタンスをよりコンパクトに表現することもできます。例えば、プロセス終了時もしくはエラー時に、ラムダ式を使ってコレクションの各要素にアクションを実行できます。
Lambda Expressions
http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html
メソッド参照を使うと、既存のメソッドを名前で参照できます。これは、既に名前があるメソッドに対するコンパクトで可読性の高いラムダ式です。
Method References
http://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html
バルクデータ表現はコレクションの反復処理をします。そのため、コレクションに格納されている要素を処理するコードをより簡潔で効率的に記述することができます。バルクデータの操作のためにパラメータとしてラムダ式を指定すると、特定のバルクデータの操作の振る舞いをカスタマイズできます。Collectionsの項目では、大量データ操作に関する新しいチュートリアルを取り上げています。
Trail: Collections
http://docs.oracle.com/javase/tutorial/collections/
Parallel Array Sorting
JDK 7で軽量なデータ並列処理のためのFork/Joinフレームワークが導入されましたが、シンプルかつ共通のタスクのアルゴリズムを利用者自身で実装する必要があります。JDK 8では、Fork/Joinフレームワークを利用して配列の並列ソートの標準実装を提供しています。
Fork/Join
http://docs.oracle.com/javase/tutorial/essential/concurrency/forkjoin.htmlArrays
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html
Annotations API Updates
Java SE 8にはAnnotations APIの重要なアップデートが含まれています。
- 同じアノテーションタイプを一度以上同じ宣言もしくはタイプ利用に対し適用することができるようになりました(repeating annotations)。
- 宣言に対してだけでなくタイプを使用している任意の場所にもアノテーションを適用できるようになりました。プラグイン可能な型システムと組み合わせて使用すると、この機能でコードの型チェックを改善することができます。
Lesson: Annotations
http://docs.oracle.com/javase/tutorial/java/annotations/index.html
Base64 Encoding Schemes
Base64
、
Base64.Encoder
、
Base64.Decoder
というクラスが追加されました。
Class Base64
http://download.java.net/jdk8/docs/api/java/util/Base64.htmlClass Base64.Encoder
http://download.java.net/jdk8/docs/api/java/util/Base64.Encoder.htmlClass Base64.Decoder
http://download.java.net/jdk8/docs/api/java/util/Base64.Decoder.html
base64エンコーディングスキームを利用するアプリケーションには、Multipurpose Internet Mail Extensions (MIME)とHTTPヘッダのエンコードパスワードを使うアプリケーションが含まれます。
Enhancements in Java SE 8
http://download.java.net/jdk8/docs/technotes/guides/lang/enhancements.html#jdk8.
以下の機能強化がJava SEのセキュリティ機能に施されています。
Server Name Indication Extension for Server Applications
Server Name Indication (SNI)拡張は、SSL/TLSプロトコルを拡張し、ハンドシェイクの間にどのサーバー名にクライアントが接続しようとしているかを示す機能です。JDK 7の Java Secure Socket Extension (JSSE) APIでは、SunJSSEプロバイダを使ってクライアントアプリケーションのためのSNI拡張を実現していましたが、JDK 8ではサーバーアプリケーションのためのSNI拡張をもサポートしています。サーバーはこのSNIを利用して、特定の
SSLSocket
もしくは
SSLEngine
インスタンスが接続を受け付けるべきか否かを判断することができます。
詳細およびサンプルは、JSSE Reference Guideの以下の章をご覧下さい。
Server Name Indication (SNI) Extension [Java Secure Socket Extension (JSSE) Reference Guide]
http://download.java.net/jdk8/docs/technotes/guides/security/jsse/JSSERefGuide.html#SNIExtension
New PKIXRevocationChecker Class
PKIXRevocationChecker
クラスは、X.509ベースの公開鍵基盤(PKIX)アルゴリズムを使用した証明書の失効ステータスをチェックします。これは、ベストエフォート型のチェック、単一証明書のチェック、およびメカニズム固有のオプションとパラメータをサポートしています。
Java PKI API Programmer's Guide
http://download.java.net/jdk8/docs/technotes/guides/security/certpath/CertPathProgGuide.html#PKIXRevocationChecker
SHA-224 Message Digests
JDK 8の暗号アルゴリズムはメッセージダイジェスト実装のSHA-2ファミリーのSHA-224バリアントで機能強化されています。詳細は、以下のアップデートされたドキュメントをご覧下さい。
Stronger Algorithms for Password-Based Encryption
いくつかのAESパスワードベース暗号(PBE)アルゴリズム(例えば
PBEWithSHA256AndAES_128
や
PBEWithSHA512AndAES_256
など)がSunJCEプロバイダに追加されました。
Oracle Providers Documentation
Enhanced Support for NSA Suite B Cryptography
この機能強化にはSHA-224、SHA-256、SHA-384、SHA-512メッセージダイジェストと、SHA224withDSAとSHA256withDSA署名の追加が含まれています。また、Also, the keysize limit for the Diffie-Hellmanアルゴリズムの鍵サイズの上限が1024bitから2048bitに増加しました。
Java Cryptography Architecture Oracle Providers Documentation for JDK 8
http://download.java.net/jdk8/docs/technotes/guides/security/SunProviders.htmlJava Cryptography Architecture Standard Algorithm Name Documentation for JDK 8
http://download.java.net/jdk8/docs/technotes/guides/security/StandardNames.html
以下の機能強化がJava SEの国際化機能に施されています。
Installation of Custom Resources as Extensions
java.util.spi.ResourceBundleControlProvider
インターフェースを使うと、
ResourceBundle.getBundle()
メソッドのリソースバンドルのロード方式を変更することができます。
ResourceBundleControlProvider
はサービスプロバイダインタフェース(SPI)であり、これを使うと、簡単に拡張可能なアプリケーションを作成できます。元のコードベースを変更する必要はありません。
Installing a Custom Resource Bundle as an Extension
http://docs.oracle.com/javase/tutorial/i18n/serviceproviders/resourcebundlecontrolprovider.html
New Calendar and Locale APIs
JDK 8で新しくアップデートされたLocaleおよびCalendar APIは、Unicode Common Locale Data Repository (CLDR)プロジェクトの成果をサポートしています。APIのリストは以下のページからどうぞ。
New Calendar and Locale APIs
http://download.java.net/jdk8/docs/technotes/guides/intl/enhancements.8.html#api
以下の機能強化がJDKで提供されるツールやユーティリティに施されています。
Pack200 Engine Updates
Java SE 8で、Javaクラスファイルフォーマットがアップデートされ、JSR 292(
Supporting Dynamically Typed Languages on the Java Platform)によってもたらされた変更を反映しています。これにより、pack200エンジンはクラスファイルを効果的に圧縮するように適宜更新されてきました。特に、pack200エンジンは定数プールエントリおよびJSR292で導入された新しいバイトコードを認識するようになりました。その結果、
pack200ツールのこのバージョンで作成された圧縮ファイルには旧バージョンの
unpack200ツールとの互換性はありません。
Pack200 Compression (Compression Formats for Network Deployment)
http://download.java.net/jdk8/docs/technotes/guides/jweb/networking/compression_formats.html#pack200_compression
以下の機能強化がプラットフォームやシステムのサポートに施されています。
JDK 8 for Linux ARM
JDK 8では provides support for ARMv7ベースのLinuxシステムをサポートします。Raspberry PiのようなARMv6ベースのシステム上では、実行できることはわかっていますが、完全にテストされていません。hard-floatアプリケーションバイナリインタフェース(ABI)のサポートがARM用JDK 8に追加され、soft-float ABIはサポートされなくなりました。Serviceability Agent (SA)がARM用JDK 8に追加されています。
Serviceability in HotSpot
http://openjdk.java.net/groups/hotspot/docs/Serviceability.htmljsadebugd - Serviceability Agent Debug Daemon
http://download.java.net/jdk8/docs/technotes/tools/unix/jsadebugd.html
以下の機能や関連するドキュメントがJDK 8から削除されました。
以下の分野に関連する早期アクセスドキュメントはしばしおまち下さい。
- Security Enhancements
- Overhaul JKS-JCEKS-PKCS12 Keystores, JEP 166
- MS-SFU Kerberos 5 Extensions, JEP 113
- Limited doPrivileged, JEP 140
- AEAD CipherSuites, JEP 115
- Configurable Secure Random-Number Generation, JEP 123
- Deployment Enhancements
- Launch JavaFX Applications, JEP 153
- Integrating JavaFX into the JRE and JDK
- Networking Enhancements
- Library Enhancements
- Handle Frequent HashMap Collisions with Balanced Trees, JEP 180
- JAXP 1.5: Restrict Fetching of External Resources, JEP 185
- Concurrency Updates, JEP 155
- Date & Time API, JEP 150
- Language Enhancements
- Access to Parameter Names at Runtime, JEP 118
- Features Related to Lambda Expressions, JEP 126
- Bulk Data Operations, JEP 107
- Virtual Extension Methods
- Enhance Core Libraries with Lambda, JEP 109
- Nashorn JavaScript Engine, JEP 174
- Tools and Other Enhancements
- Doclint:
javadoc
and javac
option to provide HTML compliance for Javadoc, JEP 172
- Updating JVM Command Line Flags and Options
- Optional Grouping: Provides different method views for generated Javadoc documentation
- 64-bit Unsigned int Data Type
- Compact Profiles, JEP 161
- Removed Features: The documentation for these features will be removed in upcoming early access documentation updates:
- Removal of ActiveX Bridge