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

Tutoriel de base Java

Contrôle de flux Java

Java tableau

Java orienté objet (I)

Java orienté objet (II)

Java orienté objet (III)

Gestion des exceptions Java

Java List

Java Queue (file d'attente)

Java Map collections

Java Set collections

Java entrée/sortie (I/O)

Java Reader/Writer

Autres sujets Java

Java 8 Nouvelles fonctionnalités

Java 8 (aussi appelé jdk 1.8) est une version principale du langage Java développée. La société Oracle 2014 Année 3 Mois 18 Version Java du jour 8 ,elle prend en charge la programmation fonctionnelle, le nouveau moteur JavaScript, le nouveau API de date, le nouveau Stream API, etc.

Nouvelles fonctionnalités

Java8 De nombreuses nouvelles fonctionnalités ont été ajoutées, nous discuterons principalement des suivantes :

  • Lambda expressions − Lambda permet de passer une fonction en tant que paramètre d'une méthode (passer une fonction en tant que paramètre à une méthode).

  • Method reference − La méthode de référence fournit une syntaxe très utile qui permet de faire référence directement aux méthodes ou constructeurs d'une classe ou d'un objet Java existants (exemple). Utilisée conjointement avec lambda, la méthode de référence rend la construction de la langue plus compacte et concise, réduisant le code redondant.

  • Default method − La méthode par défaut est une méthode qui a été implémentée dans une interface.

  • Nouveaux outils − De nouveaux outils de compilation, tels que le moteur Nashorn jjs, l'analyseur de dépendances de classes jdeps.

  • Stream API − Le nouveau Stream API (java.util.stream) introduit un style de programmation fonctionnelle véritablement fonctionnel dans Java.

  • Date Time API − 加强对日期与时间的处理。

  • Optional class − Optional 类已经成为 Java 8 类库的一部分,用来解决空指针异常。

  • Nashorn, JavaScript engine − 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 的编程格式:

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("使用 Java 7 语法: ");
        
      tester.sortUsingJava7(names1);
      System.out.println(names1);
      System.out.println("使用 Java 8 语法: ");
        
      tester.sortUsingJava8(names2);
      System.out.println(names2);
   }
   
   // Using java 7 Sorting
   private void sortUsingJava7(List<String> names) {   
      Collections.sort(names, new Comparator<String>() {
         @Override
         public int compare(String s1, String s2) {
            return s1.compareTo(s2);
         }
      );
   }
   
   // Using java 8 Sorting
   private void sortUsingJava8(List<String> names) {
      Collections.sort(names, (s1, s2) -> s1.compareTo(s2));
   }
}

Execute the above script, and the output result is:

$ javac Java8Tester.java
$ java Java8Tester
Using Java 7 Syntax: 
[Baidu, Google, w]3[Baidu, Google, w]
Using Java 8 Syntax: 
[Baidu, Google, w]3[Baidu, Google, w]

Next, we will introduce Java in detail for everyone 8 New features:

Serial numberFeatures
1Lambda expressions
2Method reference
3Functional interface
4Default method
5Stream
6Optional class
7Nashorn, JavaScript engine
8New date and time API
9Base64