Hallo, das ist @chan_kaku! Dieses Mal werde ich die in Java 9 bis 11 hinzugefügten APIs und Funktionen für diejenigen erläutern, die über eine Migration von Java 8 auf Java 11 nachdenken.
Java9 Weitere Funktionen von Java9 finden Sie unter hier.
In Java 9 gab es ein Projekt namens Project Jigsaw. Details finden Sie unter dem unten stehenden Link Über Project Jigsaw Mit anderen Worten, die folgenden vier Punkte waren die Ziele dieses Projekts
Make it easier for developers to construct and maintain libraries and large applications
Erleichtert die Wartung von Bibliotheken und großen Anwendungen
Improve the security and maintainability of Java SE Platform Implementations in general, and the JDK in particular
Verbesserte Sicherheit und Wartbarkeit der Java SE-Plattform
Enable improved application performance
Verbesserte Anwendungsleistung
Enable the Java SE Platform, and the JDK, to scale down for use in small computing devices and dense cloud deployments.
Die Java SE-Plattform und das JDK können für die Verwendung in Computergeräten mit geringer Leistung und dichten Cloud-Bereitstellungen verkleinert werden
Um diese Probleme zu lösen, führte Java 9 ein Modulsystem ein.
Das Modulsystem wird ausführlich in Around here erläutert.
Mit anderen Worten, wenn Sie die öffentlichen und geschützten Mitglieder eines anderen Moduls (Bibliothek) verwenden oder wenn Sie die öffentlichen und geschützten Mitglieder für ein anderes Modul verwenden, müssen Sie eine Datei mit dem Namen module-info.java vorbereiten. Dieses Modulsystem macht es einfacher als je zuvor, Modulabhängigkeiten und hierarchische Strukturen zu verstehen.
Java10 Die neuen Funktionen von Java 10 sind in [hier] zusammengefasst (http://openjdk.java.net/projects/jdk/10/). Ich werde die Funktionen übernehmen, die mir persönlich wichtig sind
JEP 286: Local-Variable Type Inference
Dies ist eine Typinferenzfunktion für lokale Variablen
sample.java
var list = new ArrayList<String>(); // infers ArrayList<String>
var stream = list.stream(); // infers Stream<String>
Wenn Sie in Java diese Variable für irgendetwas verwenden, kennen Sie den Typ nicht gut, daher habe ich nicht den Eindruck, dass Sie ihn so oft verwenden, aber Sie können ihn verwenden, wenn der Typ wie oben beschrieben auf der rechten Seite angegeben ist. Ist es nicht?
Java11 Wie üblich sind die neuen Funktionen von Java 11 in [hier] zusammengefasst (https://openjdk.java.net/projects/jdk/11/). Ich würde gerne einige davon abholen.
JEP 181: Nest-Based Access Control
Hier wird angegeben, dass der private Zugriff von Nestmates als JVM-Zugriffsregel eingeschränkt ist. Übrigens ist der verschachtelte Partner, der hier herauskam, wie folgt definiert
A field or method R is accessible to a class or interface D if and only if any of thefollowing conditions are true: ・ R ist privat und wird in einer anderen Klasse oder Schnittstelle deklariert. C und C und D sind Nestkameraden.
Dies gilt auch für den Benutzer, aber wenn ich Bytecode verwende, lese ich eine Methode, die ich bis jetzt nicht verstanden habe, und jetzt ist es das, was ich beabsichtigt habe. Es ist wie es ist
JEP 321: HTTP Client (Standard)
Dies soll Modan APi, HTTP2, WebSocket, Reactive unterstützen.
JEP 323: Local-Variable Syntax for Lambda Parameters
Dies besagt, dass die Typinferenz, die auch in Java 10 erläutert wurde, jetzt als Parameter für Lambda-Ausdrücke verwendet werden kann.
In Java 9 ~ 11 wurden verschiedene Funktionen hinzugefügt, aber ich persönlich habe den Eindruck, dass es in Ordnung ist, wenn Sie die hier vorgestellten Bereiche gedrückt halten. Wenn Sie diese Funktion nicht kennen, kommentieren Sie sie bitte!
Recommended Posts