Java 8 の新機能
Java 8(別名 jdk 1.8)は、Java言語開発における主要なバージョンです。Oracle社は2014年3月18日にJava 8をリリースしました。Java 8は関数型プログラミング、新しいJavaScriptエンジン、新しい日付API、新しいStream APIなどをサポートしています。
新機能
Java 8では非常に多くの機能が追加されましたが、ここでは主に以下のいくつかについて説明します:
Lambda 式− Lambda は関数をメソッドのパラメータとして渡すことを可能にします(関数をパラメータとしてメソッドに渡します)。
メソッド参照− メソッド参照は非常に便利な構文を提供し、既存のJavaクラスやオブジェクト(インスタンス)のメソッドやコンストラクタを直接参照できます。ラムダと組み合わせて使用することで、メソッド参照は言語の構文をよりコンパクトで簡潔にし、冗長なコードを減らすことができます。
デフォルトメソッド− デフォルトメソッドとは、インターフェース内で実装を持つメソッドのことです。
新しいツール− 新しいコンパイルツール、例:Nashornエンジン jjs、クラス依存関係アナライザ jdeps。
Stream API− 新しく追加されたStream API(java.util.stream)は、真の関数型プログラミングスタイルをJavaにもたらします。
Date Time API− 日付と時刻の処理を強化します。
Optional クラス− Optional クラスはJava 8クラスライブラリの一部となり、nullポインタ例外を解決するために使用されます。
Nashorn、JavaScript エンジン− Java 8は新しいNashorn JavaScriptエンジンを提供し、JVM上で特定のJavaScriptアプリケーションを実行することができます。
より多くの新機能については公式サイトを参照してください:What's New in JDK 8
Java 8に関する記事の例では、すべてjdk 1.8環境を使用しています。以下のコマンドで現在のjdkバージョンを確認できます:
$ java -version java version "1.8.0_31" Java(TM) SE Runtime Environment (build 1.8.0_31-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)
プログラミングスタイル
Java 8は独自のプログラミングスタイルを持ち、Java 7と区別されることを目指しています。以下の例は、Java 7とJava 8のプログラミング形式を示しています:
Java8Tester.java ファイルコード:
上記のスクリプトを実行すると、出力結果は次のようになります:
$ javac Java8Tester.java $ java Java8Tester 使用 Java 7 语法: [Baidu , Google , サンプル , Sina , Taobao ] 使用 Java 8 语法: [Baidu , Google , サンプル , Sina , Taobao ]
次に、Java 8の新機能について詳しく紹介します:
| 番号 | 機能 |
|---|---|
| 1 | Lambda 式 |
| 2 | メソッド参照 |
| 3 | 関数型インターフェース |
| 4 | デフォルトメソッド |
| 5 | Stream |
| 6 | Optional クラス |
| 7 | Nashorn、JavaScript エンジン |
| 8 | 新しい日付時刻 API |
| 9 | Base64 |