English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 基礎教程

Java プロセス制御

Java 配列

Java オブジェクト指向(I)

Java オブジェクト指向(II)

Java オブジェクト指向(III)

Java 異常処理

Java List

Java Queue(キュー)

Java Map集合

Java Set集合

Java入力出力(I/O)

Java Reader/Writer

Javaの他のトピック

Java 8 新しい機能

Java 8 (別名jdk 1.8)は、Java言語開発の主要なバージョンです。Oracle社は、 2014 年 3 日 18 月 8 、関数型プログラミングをサポートし、新しいJavaScriptエンジン、新しい日付API、新しいStream APIなどがあります。

新しい機能

Java8 非常に多くの機能が追加されましたが、以下のいくつかについて主に議論します:

  • ラムダ式 − Lambdaは、関数をメソッドの引数として受け取ることを許可します(関数をメソッドに引数として渡します)。

  • メソッドリファレンス − メソッドリファレンスは、非常に便利な構文を提供し、既存のJavaクラスやオブジェクト(例)のメソッドやコンストラクタを直接参照できます。lambdaと組み合わせると、メソッドリファレンスは言語の構造をよりコンパクトで簡潔にし、冗長コードを減少させます。

  • デフォルトメソッド − デフォルトメソッドは、インターフェース内に実装されたメソッドです。

  • 新しいツール − 新しいコンパイルツール、例えばNashornエンジン jjs、クラス依存関係解析器jdeps。

  • Stream API − 新しいStream API(java.util.stream)が、Javaに本物の関数型プログラミングスタイルを導入しました。

  • Date Time API − 日付と時間の処理を強化しました。

  • Optional クラス − Optional クラスはJava 8 ライブラリの一部で、空指針例外を解決するために使用されます。

  • Nashorn, JavaScript エンジン − Java 8新しいNashorn JavaScriptエンジンを提供し、特定のJavaScriptアプリケーションをJVM上で実行することができます。

さらに多くの新機能については、公式サイトを参照してください: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、 ミックスモード)

プログラミングスタイル

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("w3codebox ");
      names1.add("Taobao ");
      names1.add("Baidu ");
      names1.add("Sina ");
        
      List<String> names2 = new ArrayList<String>();
      names2.add("Google ");
      names2.add("w3codebox ");
      names2.add("Taobao ");
      names2.add("Baidu ");
      names2.add("Sina ");
        
      Java8Tester tester = new Java8Tester();
      System.out.println("使用 "); 7 语法: ");
        
      tester.sortUsingJava7(names1);
      System.out.println(names1);
      System.out.println("使用 "); 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, w]3[Baidu, Google, w]
Javaを使用して 8 構文: 
[Baidu, Google, w]3[Baidu, Google, w]

次に、Javaの詳細な紹介を行います 8 の新機能:

番号機能
1ラムダ式
2メソッドリファレンス
3機能的インターフェース
4デフォルトメソッド
5Stream
6Optional クラス
7Nashorn, JavaScript エンジン
8新しい日付と時間 API
9Base64