Java SE 17 famoahana

Taorian'ny enim-bolana ny fampandrosoana, Oracle dia namoaka Java SE 17 (Java Platform, Standard Edition 17), izay mampiasa ny open-source OpenJDK tetikasa ho toy ny reference fampiharana. Ankoatra ny fanesorana ireo endri-javatra efa lany andro, ny Java SE 17 dia mitazona ny fifanarahana mihemotra amin'ny famoahana ny sehatra Java teo aloha - ny ankamaroan'ny tetikasa Java nosoratana teo aloha dia hiasa tsy misy fiovana rehefa mandeha amin'ny dikan-teny vaovao. Ny fananganana Java SE 17 (JDK, JRE ary Server JRE) efa vonona ho an'ny Linux (x86_64, AArch64), Windows (x86_64) ary macOS (x86_64, AArch64). Novolavolain'ny tetikasa OpenJDK, ny fampiharana reference Java 17 dia loharano misokatra tanteraka eo ambanin'ny lisansa GPLv2, miaraka amin'ny GNU ClassPath maningana mamela ny fifandraisana mavitrika amin'ny vokatra ara-barotra.

Java SE 17 dia sokajiana ho famotsorana Long Term Support (LTS), izay mbola hahazo fanavaozana hatramin'ny 2029. Ny fanavaozana ho an'ny famoahana Java 16 teo aloha dia natsahatra. Ny sampana LTS Java 11 teo aloha dia ho tohanana hatramin'ny 2026. Ny famoahana LTS manaraka dia nokasaina tamin'ny Septambra 2024. Avelao izahay hampahatsiahy anao fa nanomboka tamin'ny famoahana ny Java 10, ny tetikasa dia nivadika ho dingana fampandrosoana vaovao, izay midika fa tsingerina fohy kokoa ho an'ny fananganana famoahana vaovao. Ny fiasa vaovao dia novolavolaina ao amin'ny sampana master iray havaozina tsy tapaka, izay ahitana ny fanovana efa vita ary avy amin'ireo sampana nosampana isaky ny enim-bolana mba hanamafisana ny famoahana vaovao.

Ny endri-javatra vaovao ao amin'ny Java 17 dia ahitana:

  • Ny fampiharana andrana amin'ny fampifanarahana ny lamina amin'ny fomba fiteny "switch" dia atolotra, izay mamela ny fampiasana sanda tsy marina amin'ny marika "tranga", fa ny maodely malefaka mandrakotra andiana soatoavina indray mandeha, izay nilaina teo aloha ny fampiasana sarotra. rojom-pitenenana hoe "raha ... hafa". Ankoatr'izay, ny "switch" dia manana fahafahana mitantana ny soatoavina NULL. Zavatra o = 123L; String formatted = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); default -> o.toString(); };
  • Fanohanana miorina mafy ho an'ny kilasy voaisy tombo-kase sy interface tsara, izay tsy azon'ny kilasy sy interface hafa handova, hanitarana, na hanilika ny fampiharana. Ny kilasy voaisy tombo-kase koa dia manome fomba fanambarana bebe kokoa hamerana ny fampiasana superclass noho ny mpanova fidirana, mifototra amin'ny lisitra mazava tsara ireo zana-kilasy navela hanitarana. package com.example.geometry; Kilasy voaisy tombo-kase ho an'ny daholobe Mahazo alalana endrika com.example.polar.Circle, com.example.quad.Rectangle, com.example.quad.simple.Square {…}
  • Ny fijerena faharoa ny Vector API dia atolotra, izay manome fiasa ho an'ny kajy vΓ©ctor izay tanterahina amin'ny alΓ lan'ny torolΓ lana vector amin'ny processeur x86_64 sy AArch64 ary mamela ny fandidiana hampiharina amin'ny soatoavina marobe (SIMD). Tsy toy ny fahaiza-manao omena ao amin'ny mpanangona HotSpot JIT ho an'ny auto-vectorization ny asa scalar, ny API vaovao dia mamela ny fanaraha-maso mazava ny vectorization ho an'ny fanodinana data mifanitsy.
  • Nampiana sarin'ny Foreign Function & Memory API, izay ahafahan'ny fampiharana mifandray amin'ny kaody sy angona ivelan'ny Java runtime. Ny API vaovao dia ahafahanao miantso amin'ny fomba mahomby ireo fiasa tsy JVM ary miditra amin'ny fitadidiana tsy tantanin'i JVM. Ohatra, azonao atao ny miantso asa avy amin'ny tranomboky ifampizarana ivelany ary miditra amin'ny angona momba ny fizotran'ny asa tsy mampiasa JNI.
  • Ny motera rendering macOS izay mampandeha ny Java 2D API, izay manome hery ny Swing API, dia namboarina hampiasa ny Metal graphics API. Ny sehatra macOS dia manohy mampiasa OpenGL amin'ny alΓ lan'ny default, ary ny fampandehanana ny fanohanan'ny Metal dia mitaky fametrahana "-Dsun.java2d.metal=true" ary farafaharatsiny macOS 10.14.x.
  • Nampiana seranan-tsambo ho an'ny sehatra macOS/AArch64 (solosaina Apple mifototra amin'ny poti-kapila Apple M1 vaovao). Ny endri-javatra manokana amin'ny seranan-tsambo dia ny fanohanana ny mekanika fiarovana ny fahatsiarovana W^X (Write XOR Execute), izay tsy azo idirana miaraka amin'ny fanoratana sy famonoana ny pejy fitadidiana. (ny code dia tsy azo tanterahina raha tsy aorian'ny tsy fisian'ny fanoratana, ary ny fanoratana amin'ny pejy fitadidiana dia tsy azo atao raha tsy aorian'ny famonoana ny famonoana).
  • Naverina tamin'ny fampiasana semantika strictfp fotsiny ho an'ny fanehoana teboka mitsingevana. Ny fanohanana ny semantika "default", azo alaina hatramin'ny famoahana ny Java 1.2, dia najanona, anisan'izany ny fanatsorana ny fiasana amin'ny rafitra misy coprocessors matematika x87 efa tranainy (taorian'ny fahatongavan'ny torolΓ lana SSE2, nanjavona ny filana semantika fanampiny).
  • Ny karazana fifandraisana vaovao amin'ny mpamorona isa pseudorandom dia nampiharina, ary nisy algorithms fanampiny nampiharina mba hamoronana isa kisendrasendra tsara kokoa. Ny fampiharana dia omena fahafahana hisafidy algorithm amin'ny famoronana isa pseudorandom. Fanohanana nohatsaraina amin'ny famokarana zavatra kisendrasendra.
  • Fampidirana henjana ny anatiny JDK rehetra, afa-tsy ny API mitsikera toy ny sun.misc.Unsafe. Ny encapsulation henjana dia manakana ny andrana avy amin'ny kaody mba hidirana amin'ny kilasy anatiny, fomba ary saha. Teo aloha, ny fomba fandrakofana henjana dia mety ho voasakana amin'ny fampiasana ny safidy "--illegal-access=permit", saingy efa tsy ampiasaina intsony izany. Ny fampiharana izay mitaky fidirana amin'ny kilasy anatiny, fomba ary saha dia tokony hamaritra mazava tsara azy ireo amin'ny alΓ lan'ny safidy --add-opens na ny toetra Add-Opens ao amin'ny rakitra mibaribary.
  • Ny fampiharana dia nomena fahafahana hamaritra ny sivana deserialization data, izay mety ho saro-pady amin'ny teny manodidina ary voafantina amin'ny fomba mavitrika mifototra amin'ny asa deserialization manokana. Ireo sivana voatondro dia azo ampiharina amin'ny milina virtoaly manontolo (JVM-wide), izany hoe. sarony tsy ny fampiharana ihany, fa ny tranomboky an'ny antoko fahatelo ampiasaina amin'ny fampiharana.
  • Nampidirin'i Swing ny fomba javax.swing.filechooser.FileSystemView.getSystemIcon hampidirana kisary lehibe hanatsarana ny UI amin'ny efijery DPI Avo.
  • Ny java.net.DatagramSocket API dia manome fanohanana ny fifandraisana amin'ny vondrona Multicast tsy mila java.net.MulticastSocket API misaraka.
  • Ny fitaovana IGV (Ideal Graph Visualizer) dia nohatsaraina, manome sary an-tsarimihetsika momba ny fanehoana kaody mpanelanelana ao amin'ny mpanangona HotSpot VM C2 JIT.
  • Ao amin'ny JavaDoc, amin'ny alΓ lan'ny fanoharana amin'ny compiler javac, rehefa misy hadisoana mivoaka, dia aseho izao ny isan'ny tsipika misy olana ao amin'ny rakitra loharano sy ny toerana misy ny hadisoana.
  • Nampiana ny fananana native.encoding, maneho ny anaran'ny fandiovana toetran'ny rafitra (UTF-8, koi8-r, cp1251, sns.).
  • Nampiana ny interface java.time.InstantSource, mamela ny fanodinkodinana ny fotoana tsy misy firesahana amin'ny faritra iray.
  • Nampiana java.util.HexFormat API hanovana ny endrika hexadecimal ary ny mifamadika amin'izany.
  • Nisy fomba mainty nampiana tao amin'ny compiler, izay manafoana ny asa fanafoanana ny kaody maty, izay azo ampiasaina rehefa manao fitsapana fampisehoana.
  • Nampiana safidy "-Xlog:async" ao amin'ny Runtime mba handrakitra ny logs amin'ny fomba asynchronous.
  • Rehefa mametraka fifandraisana azo antoka, TLS 1.3 dia alefa amin'ny alΓ lan'ny default (fampiasana TLS 1.2 teo aloha).
  • Ny API Applet efa lany andro nambara teo aloha (java.applet.Applet*, javax.swing.JApplet), izay nampiasaina hampandehanana ny rindranasa Java ao amin'ny navigateur, dia nafindra ho any amin'ny sokajy voatondro ho esorina (very ny lanjany rehefa tapitra ny fanohanana. ho an'ny plugin Java ho an'ny navigateur).
  • Mpitantana ny fiarovana, izay efa ela no namoy ny maha-zava-dehibe azy ary nivadika ho tsy voatonona taorian'ny fiafaran'ny fanohanana ny plugin navigateur, dia nafindra tao amin'ny sokajin'ireo voatondro ho esorina.
  • Ny mekanika RMI Activation dia nesorina, izay efa lany andro, nafindra amin'ny sokajy safidy ao amin'ny Java 8 ary saika tsy ampiasaina amin'ny fanao maoderina.
  • Mpanamboatra andrana izay manohana ny JIT (ara-potoana) ho an'ny fanangonana mavitrika ny kaody Java ho an'ny HotSpot JVM, ary koa ny fomba fanangonam-bokatra (AOT, mialohan'ny fotoana) ny kilasy ho kaody milina alohan'ny hanombohana ny milina virtoaly , nesorina tao amin'ny SDK. Nosoratana tamin'ny Java ny compiler ary mifototra amin'ny asan'ny tetikasa Graal. Marihina fa mitaky asa be dia be ny fikojakojana ny compiler, izay tsy marim-pototra rehefa tsy misy fitakiana avy amin'ny mpamorona.

Source: opennet.ru

Add a comment