Java9
Veröffentlicht am 21. September 2017 (* US-Zeit).
Erinnerst du dich nicht an "* US time" im US-US CLUB?
Jetzt wurde "US-US CLUB" auf einmal konvertiert.
Liste der Änderungen
JDK9 Features
Viele
Standpunkte
- Auswirkungen
- Ein Typ, der veröffentlichte Sachen beeinflussen kann, ohne mit der Quelle zu spielen
――Ein Typ, der das zukünftige Design und die Codierung beeinflusst
- Hobbys
――Der Typ, der die Umgebung von VM beeinflusst
Extraktion
Ich muss nichts im Detail sagen, weil ich mehr Informationen habe, aber wenn ich mir dieses paketbezogene Diagramm ansehe, sieht es aus wie "Uh".
jshell
Noch eine Tasse (ry
Der Typ um die Schnur
Compact Strings
- String ist unveränderlich, so dass ein neuer Speicherplatz vorbereitet wird, wenn Mehrbyte-Zeichen eingegeben werden. Ist es also in Ordnung ...?
- EA, aber es scheint ein solches Ergebnis zu geben → Überprüfen Sie die Geschwindigkeit der Zeichenfolgenkombination in Java 9
- 2017/10/03 hinzugefügt Wir haben das Bestätigungsergebnis der offiziellen Version von der Person selbst erhalten → [Überprüfen Sie die Geschwindigkeit der Kombination von Zeichenketten mit der offiziellen Version Java 9](http://tadashi.hatenablog.com/entry/ 2017/09/23/200356)
- ~~ Es ist irgendwie verdächtig, also lasst es uns überprüfen ~~
+ 2017/10/03 modified
- Irgendwie ist "meine Wahrnehmung" verdächtig, also lasst es uns eines Tages überprüfen
- Korrigiert, da das Überprüfungsergebnis von deaf_tadashi als verdächtig eingestuft wurde.
Indify String Concatenation
- Die Methode von "str" + "ing" wurde mithilfe der dynamischen Anweisung "Invoke" verbessert.
- Damit Sie sich keine Gedanken über die Geschichte von StringBuffer → StringBuilder machen müssen, die es in der Vergangenheit gab.
――In der kommenden Ära ist "Use StringBuilder!" Offensichtlich veraltet.
――Aber vorerst verwenden wir Builder für die Zeichenfolgenbindung, die für oder während oder in Variablen enthalten ist.
―― ~~ indy dreht sich zur Laufzeit um, sodass Sie von kompilierten Bibliotheken ~~ profitieren können
- Eine von Java 9 kompilierte Bibliothek, die indy kombiniert werden soll, verwendet die aktuelle Ausrichtung, auch wenn sie in späteren Versionen verwendet wird.
- Herr Tsuyoshi_cho wies darauf hin, dass es "auf Bibliotheken beschränkt ist, die für die Verwendung von Indy kompiliert wurden" und korrigiert wurden
Store Interned Strings in CDS Archives
――Zunächst gibt es eine Methode namens "java.lang.String # intern ()", die "die bisher verwendeten Strings bündelt und von dort abruft".
- Durch Verbessern dieses Poolspeicherorts: "Bereiten Sie einen Pool vor, der von einem anderen Prozess gemeinsam genutzt werden kann, um den Arbeitsspeicher zu reduzieren."
- Es ist jedoch nur anwendbar, wenn die 64-Bit-Version und G1GC verwendet werden.
――Da das Ziel darin besteht, das Gedächtnis zu reduzieren, scheint es nicht beschleunigt zu werden, oder es scheint etwas langsamer zu sein, da es "<2-3%" ist, "es wird sich nur innerhalb von 2-3% verschlechtern".
- Erstens ist
java.lang.String # intern ()
ein schwerer Prozess, daher denke ich nicht, dass es etwas ist, worüber man sich Sorgen machen muss.
Deprecate the Applet API
Applet? Er starb.
Unicode 8.0
Eine interne Darstellung, die gelegentlich aktualisiert wurde.
Es gibt auch Unicode7.0.
Make G1 the Default Garbage Collector
- Noch eine Tasse (ry
- Der Standard-Garbage Collector ist G1
- Da der Heap geteilt und verwaltet wird, ist die Zeit, die für die Müllabfuhr bei einem großen Heap erforderlich ist, vorhersehbar und klein.
- Die gültige Heap-Größe scheint bei 6 GB zu liegen
- Eine Person, die auf GC-Tuning spezialisiert ist, sagte: "Bestimmen Sie die Regionsgröße, indem Sie die GC-Zeit pro Zeit zurückrechnen."
UTF-8 Property Files
--UTF-8 kann für Ressourcenpakete verwendet werden
- Kann mit ISO-8859-1 und UTF-8 ordnungsgemäß verwendet werden
Weitere Verarbeitung für java.util.stream.Stream
――Ich bin froh, dass der unendliche Stream "Prädikat" empfängt und fortgesetzt wird, bis die Bedingungen erfüllt sind
--Parallel Files.lines ()
ist nett
――Aber es scheint, dass Sie eine Speicherzuordnung durchgeführt haben. Schließlich scheint es, dass Sie häufig "Stream # read ()" nacheinander ausführen.
―― Erstens scheint es fast keine Situation zu geben, in der Sie gerne Stream of java.io parallel, verteiltes Dateisystem, Broadcast verwenden?
Convenience Factory Methods for Collections
Set<String> s = Set.of("a", "b", "c");
Du musst es nicht schaffen.
Java-Level JVM Compiler Interface
--Materialien, die nicht berührt werden sollten, z. B. das Einwerfen von Maschinencode in die JVM
- Es scheint beim Erstellen eines dynamischen Compilers verwendet zu werden, z. B. bei Verwendung in Graal.
- Es gibt eine API, um den Fortschritt von JIT und die aktuelle Bereitstellung des Codes abzurufen.
- Wie erwartet wird es nur angewendet, wenn die Startoption angegeben ist.
andere