Java SE 17 Verëffentlechung

No sechs Méint Entwécklung huet Oracle d'Java SE 17 Plattform (Java Platform, Standard Edition 17) erausbruecht, déi den Open-Source OpenJDK Projet als Referenzimplementatioun benotzt. Mat Ausnam vun der Entfernung vun e puer ofgeschaafte Funktiounen, behÀlt Java SE 17 RéckwÀrtskompatibilitéit mat fréiere Versioune vun der Java Plattform - déi meescht virdru geschriwwe Java Projeten lafen onverÀnnert wann se ënner der neier Versioun lafen. Installéierbar Builds vu Java SE 17 (JDK, JRE a Server JRE) sinn dofir virbereet. Linux (x86_64, AArch64), Windows (x86_64) an macOS (x86_64, AArch64). Entwéckelt vum OpenJDK Projet, ass d'Java 17 Referenzimplementatioun voll Open Source ënner der GPLv2 Lizenz mat der GNU ClassPath Exception, déi eng dynamesch Verknëppung mat kommerziellen Produkter erlaabt.

Java SE 17 ass klassĂ©iert als Long Term Support (LTS) VerĂ«ffentlechung, dĂ©i weider Updates bis 2029 krĂ©ien. Updates fir dĂ©i frĂ©ier Java 16 Meilesteen VerĂ«ffentlechung goufen ofgeschaaft. DĂ©i viregt LTS Branche vu Java 11 gĂ«tt bis 2026 Ă«nnerstĂ«tzt. DĂ©i nĂ€chst LTS VerĂ«ffentlechung ass geplangt fir September 2024. Loosst eis Iech drun erĂ«nneren datt ugefaang mat der VerĂ«ffentlechung vu Java 10, de Projet op en neien EntwĂ©cklungsprozess gewiesselt ass, wat e mĂ©i kuerzen Zyklus fir d'Bildung vun neie VerĂ«ffentlechungen implizĂ©iert. Nei FunktionalitĂ©it ass elo an enger stĂ€nneg aktualisĂ©ierter Master-Branche entwĂ©ckelt, dĂ©i fĂ€erdeg Ännerunge enthĂ€lt an aus deenen d'Branchen all sechs MĂ©int verzweifelt ginn fir nei VerĂ«ffentlechungen ze stabilisĂ©ieren.

Nei Features am Java 17 enthalen:

  • Eng experimentell Implementatioun vu Mustermatching an "Schalter" AusdrĂ©ck gĂ«tt proposĂ©iert, wat et erlaabt net exakt WĂ€erter an "Fall" Etiketten ze benotzen, awer flexibel Templates dĂ©i eng Serie vu WĂ€erter glĂ€ichzĂ€iteg ofdecken, fir dĂ©i virdru gebraucht gouf fir Ă«mstĂ€ndlech ze benotzen Ketten vun "wann ... soss" AusdrĂ©ck. ZousĂ€tzlech, "Schalter" huet d'FĂ€hegkeet NULL WĂ€erter ze verschaffen. Objekt o = 123L; String formatted = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("lang %d", l); case Double d -> String.format("duebel %f", d); case String s -> String.format("String %s", s); default -> o.toString(); };
  • StabilisĂ©iert ËnnerstĂ«tzung fir versiegelt Klassen an SchnĂ«ttplazen, dĂ©i net vun anere Klassen an SchnĂ«ttplazen benotzt kĂ«nne ginn fir d'Ëmsetzung ze ierwen, ze verlĂ€ngeren oder ze iwwerschreiden. Versiegelte Klassen bidden och e mĂ©i deklarativen Wee fir d'Benotzung vun enger Superklass ze beschrĂ€nken wĂ©i Zougangsmodifikateur, basĂ©iert op explizit OplĂ«schtung vun den Ënnerklassen, dĂ©i fir d'VerlĂ€ngerung erlaabt sinn. Package com.example.geometrie; Ă«ffentlech versiegelt Klass Form erlaabt com.example.polar.Circle, com.example.quad.Rectangle, com.example.quad.simple.Square {...}
  • Eng zweet Virschau vun der Vector API gĂ«tt proposĂ©iert, dĂ©i Funktiounen fir Vecteure Berechnungen ubitt, dĂ©i mat Vektorinstruktiounen op x86_64 an AArch64 Prozessoren ausgefouert ginn an et erlaben Operatiounen glĂ€ichzĂ€iteg op verschidde WĂ€erter (SIMD) applizĂ©iert ze ginn. Am GĂ©igesaz zu de FĂ€egkeeten, dĂ©i am HotSpot JIT Compiler zur Auto-VektorisĂ©ierung vu scalar Operatiounen zur VerfĂŒgung gestallt ginn, mĂ©cht dĂ©i nei API et mĂ©iglech explizit VektorisĂ©ierung fir parallel Datenveraarbechtung ze kontrollĂ©ieren.
  • Eng Virschau vun der Foreign Function & Memory API bĂ€igefĂŒĂŒgt, dĂ©i Uwendungen erlaabt mat Code an Daten ausserhalb der Java Runtime ze interagĂ©ieren. DĂ©i nei API erlaabt Iech effizient Net-JVM Funktiounen ze ruffen an Zougang zu Net-JVM-verwalte ErĂ«nnerung. Zum Beispill kĂ«nnt Dir Funktiounen aus externen gemeinsame BibliothĂ©iken ruffen an Zougang zu Prozessdaten ouni JNI benotzen.
  • Rendering-Motor fir macOS, dĂ©i d'Java 2D API ubitt, dĂ©i dann an der Swing API benotzt gĂ«tt, ass ugepasst fir d'Metal Graphics API ze benotzen. StandardmĂ©isseg ass d'Plattform macOS OpenGL gĂ«tt nach Ă«mmer benotzt, an d'AktivĂ©ierung vun der Metal-ËnnerstĂ«tzung erfuerdert d'Astellung vum Parameter "-Dsun.java2d.metal=true" an d'Benotzung vun op d'mannst der Versiounsdatum. macOS 10.14.x.
  • Port fir d'Plattform bĂ€igefĂŒĂŒgt macOS/AArch64 (Apple Computeren basĂ©iert op den neien Apple M1 Chips). Eng speziell Funktioun vun dĂ«sem Port ass d'ËnnerstĂ«tzung fir de W^X (Write XOR Execute) Speicherschutzmechanismus, deen verhĂ«nnert datt SpeichersĂ€iten glĂ€ichzĂ€iteg beschriwwen an ausfĂ©ierbar sinn. (Code kann nĂ«mmen ausgefĂŒhrt ginn nodeems de Schreifzougang deaktivĂ©iert ass, an d'Schreiwe op eng SpeichersĂ€it ass nĂ«mme mĂ©iglech nodeems de AusfĂ©ierungszougang deaktivĂ©iert ass.)
  • ZrĂ©ckgaang fir nĂ«mmen strictfp Semantik fir Floating Point AusdrĂ©ck ze benotzen. ËnnerstĂ«tzung fir d'"Standard" Semantik, dĂ©i zanter der VerĂ«ffentlechung vu Java 1.2 verfĂŒgbar ass, ass gestoppt ginn, dorĂ«nner Vereinfachunge fir op Systemer mat ganz alen x87 Mathematik-Koprozessoren ze schaffen (no der Entstoe vun SSE2 Instruktiounen ass de Besoin fir zousĂ€tzlech Semantik verschwonnen).
  • Nei Zorte vu SchnĂ«ttplazen zu pseudorandom Zuel Generatoren goufen Ă«mgesat, an zousĂ€tzlech algorithms goufen fir eng besser Generatioun vun zoufĂ€lleg Zuelen Ă«mgesat. D'Applikatioune ginn d'MĂ©iglechkeet en Algorithmus ze wielen fir pseudorandom Zuelen ze generĂ©ieren. Verbesserte ËnnerstĂ«tzung fir zoufĂ€lleg Objetstroum ze generĂ©ieren.
  • Gezwongen strikt VerschlĂ«sselung vun all JDK interns, mat Ausnam vun kritescher API wĂ©i sun.misc.Unsafe. Strikt Encapsulation blockĂ©iert Versuche vum Code fir Zougang zu intern Klassen, Methoden a Felder ze krĂ©ien. Virdrun konnt de strenge EncapsulĂ©ierungsmodus mat der "--illegal-access=permit" Optioun ausgeschalt ginn, awer dĂ«st gouf elo ofgeschaaft. Uwendungen dĂ©i Zougang zu intern Klassen, Methoden a Felder erfuerderen, solle se explizit definĂ©ieren mat der --add-opens Optioun oder dem Add-Opens Attribut an der Manifestdatei.
  • Applikatioune kĂ«nnen elo Filter fir Datendeserialisatioun definĂ©ieren, dĂ©i kontextofhĂ€ngeg kĂ«nne sinn an dynamesch a Verbindung mat spezifeschen Deserialisatiounsoperatiounen ausgewielt ginn. D'Filter, dĂ©i Dir definĂ©iert, gĂ«llen fir de ganze ... virtuell Maschinn (JVM-wĂ€it), d.h. si decken net nĂ«mmen d'Applikatioun selwer of, mĂ€ och DrĂ«ttubidder-BibliothĂ©ike vun an der Applikatioun benotzt.
  • Swing huet d'javax.swing.filechooser.FileSystemView.getSystemIcon Method derbĂ€igesat fir grouss Ikonen ze lueden fir d'UI op High DPI Schiirme ze verbesseren.
  • D'java.net.DatagramSocket API bitt ËnnerstĂ«tzung fir d'Verbindung mat Multicast Gruppen ouni de Besoin fir eng separat java.net.MulticastSocket API.
  • D'IGV (Ideal Graph Visualizer) Utility gouf verbessert, bitt interaktiv VisualisĂ©ierung vun der mĂ«ttlerer Code Representatioun am HotSpot VM C2 JIT Compiler.
  • Am JavaDoc, duerch Analogie mam javac Compiler, wann e Feeler erausgeet, ginn d'Zuel vun der problematescher Linn an der Quelldatei an d'Location vum Feeler elo uginn.
  • D'native.encoding Eegeschafte bĂ€igefĂŒĂŒgt, wat den Numm vum System Charakter KodĂ©ierung reflektĂ©iert (UTF-8, koi8-r, cp1251, etc.).
  • D'java.time.InstantSource Interface gouf bĂ€igefĂŒĂŒgt, wat ZĂ€itmanipulatioun erlaabt ouni Referenz op eng ZĂ€itzone.
  • DerbĂ€igesat java.util.HexFormat API fir d'KonvertĂ©ierung op hexadezimal Representatioun a vice versa.
  • E Blackhole Modus gouf zum Compiler bĂ€igefĂŒĂŒgt, deen dout-Code Eliminatiounsoperatioune deaktivĂ©iert, dĂ©i kĂ«nne benotzt ginn wann Dir Leeschtungstester ausfĂ©iert.
  • D'Optioun "-Xlog:async" op Runtime bĂ€igefĂŒĂŒgt fir Logbicher am asynchrone Modus opzehuelen.
  • Wann Dir sĂ©cher Verbindungen opstellt, ass TLS 1.3 als Standard aktivĂ©iert (virdrun TLS 1.2 gouf benotzt).
  • DĂ©i virdru deklarĂ©iert verouderd Applet API (java.applet.Applet*, javax.swing.JApplet), dĂ©i benotzt gouf fir Java Uwendungen am Browser ze lafen, gouf an d'Kategorie geplĂ«nnert fir d'Entfernung (verluer Relevanz nom Enn vun der ËnnerstĂ«tzung) fir den Java Plugin fir Browser).
  • De SĂ©cherheetsmanager, deen zĂ«nter laangem seng Relevanz verluer huet a sech no der Enn vun der ËnnerstĂ«tzung fir de Browser Plugin net ugefrot huet, ass an d'Kategorie vun de geplangten Entfernung geplĂ«nnert.
  • De RMI AktivĂ©ierungsmechanismus gouf ofgeschaaft, deen al ass, an d'Kategorie vun enger Optioun am Java 8 ofgestig ass a bal ni an der moderner Praxis benotzt gĂ«tt.
  • En experimentellen Compiler deen JIT (just-in-time) Ă«nnerstĂ«tzt fir dynamesch KompilĂ©ierung vum Java Code fir HotSpot JVM, souwĂ©i de Modus vun der antizipativer KompilĂ©ierung (AOT, viraussiichtlech) vu Klassen a Maschinncode ier Dir dĂ©i virtuell Maschinn ufĂ€nkt , gouf aus der SDK gelĂ€scht. De Compiler gouf op Java geschriwwen a basĂ©iert op der Aarbecht vum Graal Projet. Et gĂ«tt bemierkt datt Compiler Ënnerhalt vill Aarbecht erfuerdert, wat net gerechtfĂ€erdegt ass wann et keng Nofro vun EntwĂ©ckler ass.

Source: opennet.ru

Kaaft zouverlĂ€sseg Hosting fir Site mat DDoS Schutz, VPS VDS Server đŸ”„ Kaaft zouverlĂ©issegt WebsĂ€ithosting mat DDoS-Schutz, VPS VDS Server | ProHoster