Java 8の新機能
Java 8 (jdk 1.8 とも呼ばれる) は、Java 言語開発のメジャー バージョンです。 Oracle は、関数型プログラミング、新しい JavaScript エンジン、新しい日付 API、新しい Stream API などをサポートする Java 8 を 2014 年 3 月 18 日にリリースしました。
新機能
Java8 には多くの新機能が追加されています。主に以下について説明します:
ラムダ式 − Lambda では、関数をメソッドのパラメータとして使用できます (関数はメソッドに渡されます)。
メソッドリファレンス - メソッドリファレンスは、既存の Java クラスまたはオブジェクト (インスタンス) のメソッドまたはコンストラクターを直接参照できる非常に便利な構文を提供します。ラムダと組み合わせて使用すると、メソッド参照は次のようになります。言語の構築がより便利になり、冗長なコードが削減されます
デフォルトメソッド
- - 新しいコンパイルツール。 、Nashorn エンジン jjs など、クラス依存関係アナライザー jdeps
Stream API
− 新しく追加された Stream API (java.util.stream) は、Java Date Time API − 強化日付と時刻の処理
オプションのクラス - オプションのクラスは、null ポインタ例外を解決するために Java 8 クラス ライブラリの一部になりました
JavaScript エンジン - Java 8 によって提供されます。新しい Nashorn JavaScript エンジンにより、JVM 上で特定の JavaScript アプリケーションを実行できるようになります
その他の新機能については、公式 Web サイトを参照してください: 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 を表示する プログラミング形式:
import java.util.Collections; import java.util.List; import java.util.ArrayList; import java.util.Comparator; public class Java8Tester { public static void main(String args[]){ List<String> names1 = new ArrayList<String>(); names1.add("Google "); names1.add("php "); names1.add("Taobao "); names1.add("Baidu "); names1.add("Sina "); List<String> names2 = new ArrayList<String>(); names2.add("Google "); names2.add("php "); names2.add("Taobao "); names2.add("Baidu "); names2.add("Sina "); Java8Tester tester = new Java8Tester(); System.out.println("使用 Java 7 语法: "); tester.sortUsingJava7(names1); System.out.println(names1); System.out.println("使用 Java 8 语法: "); tester.sortUsingJava8(names2); System.out.println(names2); } // 使用 java 7 排序 private void sortUsingJava7(List<String> names){ Collections.sort(names, new Comparator<String>() { @Override public int compare(String s1, String s2) { return s1.compareTo(s2); } }); } // 使用 java 8 排序 private void sortUsingJava8(List<String> names){ Collections.sort(names, (s1, s2) -> s1.compareTo(s2)); } }上記のスクリプトを実行すると、出力結果は次のようになります:
$ javac Java8Tester.java $ java Java8Tester 使用 Java 7 语法: [Baidu , Google , php , Sina , Taobao ] 使用 Java 8 语法: [Baidu , Google , php , Sina , Taobao ]
次に、Java 8 の新機能を詳しく紹介します:
シリアル番号機能1 | ラムダ式式 |
---|---|
2 | メソッドリファレンス |
3 | 関数インターフェース |
4 | デフォルトメソッド |
5 | ストリーム |
6 | オプションクラス |
7 | Nashorn、JavaScriptエンジン |
8 | 新しい日時API |
9 | Base64 |