Java 11 wurde am 25. September 2018 veröffentlicht.
Unten ist das JEP in Java 11.
Ab JDK9 wurde das Release-Modell alle 6 Monate (März und September) auf Feature-Releases geändert. Darüber hinaus wurden Schwachstellen-Gegenmaßnahmen und Fehlerbehebungen behoben, sodass sie im Januar, April, Juli und Oktober viermal im Jahr verfügbar sind. In Bezug auf die Bereitstellung von Binärdateien Bisher wurden die Binärdateien von Oracle kostenlos zur Verfügung gestellt, aber nach 9 werden die kostenlosen Binärdateien von OpenJDK bereitgestellt. Oracle JDK 9 oder höher wird berechnet. Vor 8 gab es einen technischen Unterschied zwischen Oracle JDK und Open JDK, der jedoch verschwunden ist.
LTS Nach JDK11 wird Oracle JDK alle drei Jahre veröffentlicht. Bezahlter Support für Oracle Bietet Sicherheitsupdates für mindestens 8 Jahre. Darüber hinaus wird es seit JDK11 für Entwicklungs-, Test-, Testproduktions- und Demonstrationszwecke kostenlos zur Verfügung stehen.
Ein japanisches Dokument namens Java ist immer noch kostenlos, das von Dutzenden von Java-Champions in Bezug auf Java-Unterstützung und -Updates geschrieben wurde, wurde veröffentlicht. Es war.
JEP181 Nest-Based Access Control Bis Java10 war der Code, der die private Methode der äußeren Klasse aus der inneren Klasse aufrief, eine seltsame Bytecode-Ausgabe.
Sehen Sie sich den folgenden Code in JDK 10 an.
Outer.java
public class Outer {
private int i = 0;
public class Inner {
public int i() {
return i;
}
}
}
Versuchen Sie nach dem Kompilieren, die Klassendatei zu demontieren.
python
$ javap -p -c Outer\$Inner
Compiled from "Outer.java"
public class Outer$Inner {
final Outer this$0;
public Outer$Inner(Outer);
Code:
0: aload_0
1: aload_1
2: putfield #1 // Field this$0:LOuter;
5: aload_0
6: invokespecial #2 // Method java/lang/Object."<init>":()V
9: return
public int i();
Code:
0: aload_0
1: getfield #1 // Field this$0:LOuter;
4: invokestatic #3 // Method Outer.access$000:(LOuter;)I
7: ireturn
}
Kompilieren Sie als Nächstes denselben Code mit JDK 11 und versuchen Sie, ihn in umgekehrter Reihenfolge zusammenzusetzen.
python
$ javap -p -c Outer\$Inner
Compiled from "Outer.java"
public class Outer$Inner {
final Outer this$0;
public Outer$Inner(Outer);
Code:
0: aload_0
1: aload_1
2: putfield #1 // Field this$0:LOuter;
5: aload_0
6: invokespecial #2 // Method java/lang/Object."<init>":()V
9: return
public int i();
Code:
0: aload_0
1: getfield #1 // Field this$0:LOuter;
4: getfield #3 // Field Outer.i:I
7: ireturn
}
Für diejenigen, die mit JDK10 kompiliert haben, ruft die Inner-Klasse den statischen Methodenzugriff von Outer auf $ 000 auf. In JDK11 ruft die innere Klasse die äußere Klasse Outer.i direkt anstelle der Zugriffsmethode $ 000 auf.
Ein Video dazu ist auf dem JVM Language Summit 2018 verfügbar.
JEP309 Dynamic Class-File Constants Erweitert das Dateiformat der Java-Klasse, um dynamische Konstanten zu unterstützen. Bis Java10 konnten nur Zeichenfolgen mit Grundelementen und Literalen im Konstantenpool gespeichert werden, andere Zeichenfolgen können jetzt im Konstantenpool verarbeitet werden. Der Vorteil dynamischer Konstanten scheint zu sein, dass sie Ihnen mehr Freiheit in Ihrer Sprache und Ihrem Compiler und mehr Freiheit in Ihrem Bytecode geben.
Ein Video dazu ist auf dem JVM Language Summit 2018 verfügbar.
JEP320 Remove the Java EE and CORBA Modules Die JavaEE- und CORBA-Module wurden entfernt. Ziele sind CORBA, JAXB, JAX-WS, Common Activation Framework und JTA. Diese Proxy-Module sind wie folgt.
Der Grund für das Löschen scheint zu sein, dass der Unterschied in der Entwicklungsgeschwindigkeit nicht mit der Geschwindigkeit von Java SE mithalten kann. Es scheint, dass es in Zukunft als Jakarta EE entwickelt wird.
JEP321 HTTP Client (Standard) Die HTTP-Client-API wurde standardisiert. Unterstützt asynchrones und auch HTTP / 2. Der Modulname lautet java.net.http.
Ein Video dazu wurde veröffentlicht.
JEP323 Local-Variable Syntax for Lambda Parameters Sie können jetzt var mit Lambda-Parametern sowie die in Java 10 eingeführte Inferenz lokaler Variablentypen verwenden. Weitere Anmerkungen können hinzugefügt werden. Ein Video dazu wurde veröffentlicht.
Recommended Posts