Neue Funktionen in Java 8

Java 8 (auch bekannt als jdk 1.8) ist eine wichtige Veröffentlichung in der Entwicklung der Java-Sprache. Oracle Corporation veröffentlichte Java 8 am 18. März 2014. Es unterstützt funktionale Programmierung, eine neue JavaScript-Engine, eine neue Datums-API, eine neue Stream-API und mehr.


Neue Funktionen

Java 8 hat eine Vielzahl von Funktionen hinzugefügt; wir behandeln hauptsächlich die folgenden:

  • Lambda-Ausdrücke− Lambda ermöglicht es, Funktionen als Methodenparameter zu verwenden (Funktionen, die als Argumente an Methoden übergeben werden).

  • Methodenreferenzen− Methodenreferenzen bieten eine sehr nützliche Syntax, die direkt auf Methoden oder Konstruktoren vorhandener Java-Klassen oder -Objekte (Instanzen) verweisen kann. In Kombination mit Lambda können Methodenreferenzen Sprachkonstrukte kompakter und prägnanter machen und redundanten Code reduzieren.

  • Standardmethoden− Eine Standardmethode ist eine Methode, die eine Implementierung in einem Interface hat.

  • Neue Werkzeuge− Neue Kompilierungswerkzeuge, wie: Nashorn-Engine jjs, Klassendependenz-Analysator jdeps.

  • Stream-API− Die neu hinzugefügte Stream-API (java.util.stream) führt einen wirklich funktionalen Programmierstil in Java ein.

  • Datum-Zeit-API− Verbesserte Behandlung von Datum und Uhrzeit.

  • Optional-Klasse− Die Optional-Klasse ist Teil der Java-8-Klassenbibliothek geworden und wird verwendet, um Nullzeiger-Ausnahmen zu lösen.

  • Nashorn, JavaScript-Engine− Java 8 bietet eine neue Nashorn-JavaScript-Engine, mit der wir bestimmte JavaScript-Anwendungen auf der JVM ausführen können.

Weitere neue Funktionen finden Sie auf der offiziellen Website:Neuerungen in JDK 8

In den Beispielen des Java-8-Artikels verwenden wir alle die JDK-1.8-Umgebung. Mit dem folgenden Befehl können Sie die aktuelle JDK-Version überprüfen:

$ 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)

Programmierstil

Java 8 möchte einen eigenen Programmierstil haben und sich von Java 7 unterscheiden. Die folgenden Beispiele zeigen die Programmierformate von Java 7 und Java 8:

Code der Datei Java8Tester.java:

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("Example "); names1.add("Taobao "); names1.add("Baidu "); names1.add("Sina "); List<String> names2 = new ArrayList<String>(); names2.add("Google "); names2.add("Example "); names2.add("Taobao "); names2.add("Baidu "); names2.add("Sina "); Java8Tester tester = new Java8Tester(); System.out.println("Mit Java 7-Syntax:"); tester.sortUsingJava7(names1); System.out.println(names1); System.out.println("Mit Java 8-Syntax:"); tester.sortUsingJava8(names2); System.out.println(names2); } //Sortieren mit 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); } }); } //Sortieren mit Java 8 private void sortUsingJava8(List<String> names){ Collections.sort(names, (s1, s2) -> s1.compareTo(s2)); } }

Führen Sie das obige Skript aus, das Ausgabeergebnis ist:

$ javac Java8Tester.java
$ java Java8Tester
使用 Java 7 语法: 
[Baidu , Google , Example , Sina , Taobao ]
使用 Java 8 语法: 
[Baidu , Google , Example , Sina , Taobao ]

Als Nächstes werden wir die neuen Funktionen von Java 8 ausführlich für alle vorstellen:

Nein. Merkmal
1 Lambda-Ausdrücke
2 Methodenreferenzen
3 Funktionale Schnittstellen
4 Standardmethoden
5 Stream
6 Optional-Klasse
7 Nashorn, JavaScript-Engine
8 Neue Date/Time-API
9 Base64
Andere Erweiterungen