Java 9 neue Funktionen und Beispielcode

Dies ist ein Nachdruck von Blog Article.

Mit der Veröffentlichung von Java 9 im Juli 2017 Ich werde vorstellen, was Sie mit Java 9 mit Beispielcode tun können.

Alle Informationen sind vor der Veröffentlichung, also Bitte beachten Sie, dass es in der aktuellen Java 9-Version abweichen kann.

Java10 Release nähert sich, ich werde einen Link posten. Zusammenfassung der neuen Funktionen von Java 10

Inhaltsverzeichnis

  1. JShell
  2. Factory-Methode für unveränderliche List / Set / Map
  3. Private Methode in der Schnittstelle
  4. Modulsystem
  5. API-Verbesserungen verarbeiten
  6. Verbesserung des Try-with-Resource
  7. Verbesserungen an der CompletableFuture-API
  8. Reaktiver Strom
  9. Diamantoperator in anonymer Klasse
  10. Optionale Klassenverbesserungen
  11. API-Verbesserungen streamen
  12. Erweiterte @ Veraltete Anmerkung
  13. HTTP2-Client
  14. Multi-Resolution Image API
  15. Andere

JShell REPL-Umgebung. Führen Sie Java über die Befehlszeile aus. Sie können jetzt die API überprüfen und einfache Tests durchführen.

C:\>jshell
|  Welcome to JShell -- Version 9-ea
|  For an introduction type: /help intro

jshell> String helloWorld = "Hello World"
helloWorld ==> "Hello World"

jshell> System.out.println(helloWorld + "!!" )
Hello World!!

Factory-Methode für unveränderliche List / Set / Map

Wie der Titel schon sagt. Sie können jetzt List / Set / Map wie Guava (Googles allgemeine Verarbeitungsbibliothek) erstellen.

jshell> List emptyImmutableList = List.of();
emptyImmutableList ==> []
jshell> Map nonemptyImmutableMap = Map.of(1, "one", 2, "two", 3, "three")
nonemptyImmutableMap ==> {2=two, 3=three, 1=one}

Private Methode in der Schnittstelle

Mit Java 8 können Sie Standard- und statische Methoden für die Schnittstelle definieren. Mit Java9 können Sie auch private Methoden definieren.

public interface Card{
  private Long createCardID();
  private static void displayCardDetails();
}

Modulsystem

Es wurde das Jigsaw-Projekt genannt. Es ist jetzt möglich, öffentliche und private APIs in module-info.java zu definieren.

Beispielcode finden Sie im Artikel hier.

Prozess-API-Verbesserungen

Die folgenden Klassen wurden hinzugefügt.

 ProcessHandle currentProcess = ProcessHandle.current();
 System.out.println("Current Process Id: = " + currentProcess.getPid());

Verbesserung des Try-with-Resource

Die Try-with-Resource-Anweisung bis Java 8 Es war obligatorisch, die Klasse in der try-Klausel zu deklarieren. Dies wird nicht mehr benötigt.

void testARM_Java9() throws IOException{
 BufferedReader reader1 = new BufferedReader(new FileReader("journaldev.txt"));
 try (reader1) {
   System.out.println(reader1.readLine());
 }
}

Verbesserungen an der CompletableFuture-API

CompletableFuture API,

Funktionen wie wurden hinzugefügt.

Executor exe = CompletableFuture.delayedExecutor(50L, TimeUnit.SECONDS);

Reaktiver Strom

Förderung der asynchronen Verarbeitung / Parallelverarbeitung / skalierbaren Anwendungsentwicklung Das Publish / Subscribe-Framework wurde hinzugefügt. Es ist ein Mechanismus in Akka usw.

Beispielcode finden Sie unter hier.

Diamantoperator in anonymer Klasse

Ich kannte die Details nicht und habe sie daher weggelassen.

Optionale Klassenverbesserungen

Zur optionalen Klasse wurden verschiedene Ergänzungen vorgenommen.

Durch Übergeben von Optional :: stream an Stream # flatMap Es scheint, dass es in Stream der umschlossenen Klasse konvertiert werden kann.

Stream<Optional> emp = getEmployee(id)
Stream empStream = emp.flatMap(Optional::stream)

Verbesserungen der Stream-API

Eine takeWhile-Methode und eine dropWhile-Methode, die auf die gleiche Weise wie Scala geschrieben werden können, wurden hinzugefügt.

jshell> Stream.of(1,2,3,4,5,6,7,8,9,10).takeWhile(i -> i < 5 )
                 .forEach(System.out::println);
1
2
3
4

Erweiterte @ Veraltete Anmerkung

Wird es abgeschafft? (zum Entfernen) Wann wird es abgeschafft? (schon seit) Es scheint, dass Informationen wie jetzt gegeben werden.

HTTP2-Client

Es scheint, dass dies auf die Inkubationsfunktion herabgestuft wurde ... Referenz

Der HTTP / 2-Client ist in Java 9 enthalten, kann jedoch standardmäßig nicht aufgerufen werden. Die Funktionalität ist in einem Präfixmodul namens jdk.incubator zusammengefasst. Entwickler, die darauf zugreifen, müssen explizit das Flag --add-mod verwenden. Wenn Sie sich jedoch dafür entscheiden, müssen Sie berücksichtigen, dass die Inkubationsfunktion nicht Teil der Standard-API ist und daher immer geändert wird.

jshell> import java.net.http.*

jshell> import static java.net.http.HttpRequest.*

jshell> import static java.net.http.HttpResponse.*

jshell> URI uri = new URI("http://google.com")
uri ==> http://google.com

jshell> HttpResponse response = HttpRequest.create(uri).body(noBody()).GET().response()
response ==> java.net.http.HttpResponseImpl@79efed2d

jshell> System.out.println("Response was " + response.body(asString()))

Multi-Resolution Image API Es scheint, dass die MultiResolutionImage-Schnittstelle zum Paket java.awt.image hinzugefügt wurde.

Weitere Informationen finden Sie unter Offizielles Dokument.

Andere

Andere

Und so weiter.

Referenz

Java 9 Features with Examples

Recommended Posts

Java 9 neue Funktionen und Beispielcode
Java-Beispielcode 02
Java-Beispielcode 03
Java-Beispielcode 04
Java1.8 neue Funktionen
Java-Beispielcode 01
Java Version 8 und neuere Funktionen
Beispielcode für elektronische Signatur (JAVA)
Neue Funktionen von Java7 bis Java8
Java-Funktionen
Java-Funktionen
Beispielcode zum Parsen von Datum und Uhrzeit mit Java SimpleDateFormat
BloomFilter-Beschreibungs- und Implementierungsbeispiel (JAVA)
Java 14 neue Funktionen, mit denen Code geschrieben werden kann
Beispielcode mit Minio aus Java
Verknüpfen Sie Java- und C ++ - Code mit SWIG
Seitenzahllogik und Referenzcode (Java)
Führen Sie Java-Code skriptweise aus
Beispielcode zum Serialisieren und Deserialisieren von Java Enum-Enumerationen und JSON in Jackson
[Java] Generics-Beispiel
Selenprobe (Java)
Informationen zu Java-Funktionen
Java und JavaScript
XXE und Java
Java-Zeichencode
Voraussichtliche Funktionen von Java
Zusammenfassung der neuen Funktionen von Java 12
Beispielcode zum Konvertieren von List in List <String> in Java Stream
Getter und Setter (Java)
[Java] Thread und ausführbar
Beispiel für eine OAuth 2.0-Authentifizierung und Zugriffstokenerfassung (Java)
Zusammenfassung der neuen Funktionen von Java 13
Java wahr und falsch
[Java] Vergleich von Zeichenketten und && und ||
[Java] Beispiel für ein Urlaubsurteil
Installieren Sie Java und Maven mit Brew auf einem neuen Mac
Java - Serialisierung und Deserialisierung
[Java] Argumente und Parameter
timedatectl und Java TimeZone
Beispielcode für die Protokollausgabe von Java + SLF4J + Logback
[Java] Verzweigen und Wiederholen
[Java] logback slf4j Beispiel
Was ist neu in Java 8?
Zusammenfassung der neuen Funktionen von Java 10
[Java] Variablen- und Typtypen
[Java] Drei Funktionen von Java
Java (Klasse und Instanz)
Zusammenfassung der neuen Funktionen von Java 14
Was ist neu in Java 9,10,11
[Java] Überladen und überschreiben
Java-Codebeispiel zum Erfassen und Anzeigen von DBLINK-Quell- und Zieldaten in Oracle Database mithilfe von DBLINK
Informieren Sie sich sofort über neue Funktionen von Java 7 bis Java 9
Java-Quellbeispiel für SELECT und Anzeige von CLOB (Oracle Database + Java)
Verstehen Sie das Singleton-Muster, indem Sie Java- und JavaScript-Code vergleichen
Korrigieren Sie den Zeichencode in Java und lesen Sie von der URL
Einstellungen für die Eclipse-Installation und die Verstärkung der Codevervollständigung (Mac für Java-Entwicklung)
Verstehen Sie das Iterator-Muster, indem Sie Java- und JavaScript-Code vergleichen