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 オプションクラス
7Nashorn、JavaScriptエンジン
8新しい日時API
9Base64