Programiranje

JDK 14: Nove funkcije v Java 14

Java Development Kit (JDK) 14 je dosegel GA in je na voljo v izdaji za splošno razpoložljivost za uvedbo v proizvodnji. Nadgradnja na standardno Javo vključuje nove zmogljivosti, kot so pretakanje dogodkov JDK Flight Recorder, ujemanje vzorcev in izrazi stikal.

JDK 14 je izdaja funkcije Java in ne dolgoročna podpora (LTS) po šestmesečni kadenci, nastavljeni za Javo. JDK 14 bo aprila in julija prejel varnostne posodobitve, preden ga bo nadomestil JDK 15, prav tako ne-LTS, ki bo predviden septembra. Trenutna izdaja LTS je JDK 11.

Nove funkcije in izboljšave v JDK 14 vključujejo:

  • JFR Event Streaming ponuja API za neprekinjeno porabo podatkov JFR tako iz procesnih kot izvenprocesnih aplikacij. JFR je orodje za zbiranje profiliranja in diagnostičnih podatkov o aplikaciji Java in JVM, ko se izvajajo. Predlog za pretakanje dogodkov beleži enak nabor dogodkov kot za pretočni primer, pri čemer so režijski stroški manjši od enega odstotka, če je to mogoče. Pretakanje dogodkov mora obstajati sočasno s posnetki, ki niso pretočni, tako na disku kot na pomnilniku. Motivacija tega predloga je situacija, v kateri HotSpot VM s pomočjo JFR odda več kot 500 podatkovnih točk, večina jih je na voljo le z razčlenjevanjem dnevniških datotek. Trenutno mora uporabnik začeti snemanje, ga ustaviti, zložiti vsebino na disk in nato razčleniti snemalno datoteko. To deluje dobro za profiliranje aplikacij, ne pa tudi za namene spremljanja. Primer spremljanja uporabe je nadzorna plošča, ki prikazuje dinamične posodobitve podatkov. Obstaja poraba pri ustvarjanju posnetka, na primer kopiranje podatkov iz repozitorija diska v ločeno snemalno datoteko. Če bi obstajali načini za branje podatkov, ki se snemajo iz repozitorija diska, ne da bi ustvarili novo snemalno datoteko, bi se lahko izognili velikemu številu režijskih stroškov.
  • Načrtovano izboljšanje doNullPointerExceptions se nanaša na izboljšanje uporabnosti izjem, ki jih generira JVM, tako da natančno opiše, katera spremenljivka je nična. Avtorji predloga želijo razvijalcem in podpornemu osebju zagotoviti koristne informacije o predčasnem prenehanju programa in izboljšati razumevanje programa z jasnejšim povezovanjem dinamične izjeme s statično programsko kodo. Eden od ciljev je zmanjšati zmedo in zaskrbljenost razvijalcev NullPointerExceptions.
  • Nehlapni preslikani bajtni vmesniki bi dodali nove načine preslikave datotek, specifične za JDK, ki omogočajo uporabo API-ja FileChannel za ustvarjanje MappedByteBuffer primerki, ki se nanašajo na trajni pomnilnik (NVM). NVM programerjem omogoča, da gradijo in posodabljajo stanje programa med izvajanjem programa, ne da bi pri tem nastali znatni stroški kopiranja ali prevajanja, ki jih običajno zahtevajo vhodne in izhodne operacije. To je še posebej pomembno za transakcijske programe. Tako je glavni cilj tega predloga za izboljšanje JDK zagotoviti, da lahko stranke skladno in učinkovito dostopajo do NVM in ga posodabljajo iz programa Java. Sekundarni cilj je izvajanje tega vedenja predaje z uporabo omejenega internega API-ja JDK, definiranega v razredu Nevarno, zato ga lahko ponovno uporabijo razredi, ki niso MappedByteBuffer ki se bodo morda morali zavezati NVM. Drugi cilj je omogočiti sledenje medpomnilnikom, ki so preslikani v NVM, z obstoječimi API-ji za spremljanje in upravljanje. Ciljne platforme za OS / CPU vključujejo Linux / x64 in Linux / AArch64.
  • Preklopni izrazi poenostavijo kodiranje z razširitvijostikalo tako da se lahko uporablja kot izjava ali izraz. Preklopni izrazi naj bi bili stalna funkcija v JDK 14, potem ko so bili predogledani tako v JDK 12 kot v JDK 13. Izrazi stikal se prav tako pripravijo na uporabo ujemanja vzorcev v stikalo. Ujemanje vzorcev omogoča razvijalcem, da pogojneje jedrnato in varno izločijo komponente iz predmetov.
  • Dodelitev pomnilnika s pomočjo NUMA za zbiralnik smeti G1, namenjena izboljšanju zmogljivosti G1 na velikih strojih.
  • Odstranjevanje zbiralnika smeti Concurrent Mark Sweep (CMS), ki je bil prej zastarel in predviden za odstranitev. Nasledniki CMS so nastali, vključno z ZGC in Shenandoah.
  • Prenos ZGC na MacOS. Do zdaj je bil podprt samo v Linuxu.
  • Odstranitev orodij pack200 in unpack200 ter API Pack200 v java.util.jar paket. Vsi so bili zastareli v Java SE 11 z namenom, da bi jih v prihodnosti odstranili. Pack200 je shema stiskanja datotek JAR.
  • Zapisi, ki bi zagotovili kompaktno sintakso za razglasitev razredov, ki so prozorni nosilci plitvo nespremenljivih podatkov. Zapisi olajšajo ustvarjanje razredov, ki so v bistvu nosilci podatkov, ne da bi bilo treba pisati veliko vzorcev. Predlog navaja, da bi moralo biti enostavno in jedrnato razglasiti plitvo nespremenljive, dobro obnašane nominalne agregate podatkov.
  • Orodje za pakiranje v fazi inkubatorja za pakiranje samostojnih aplikacij Java. Orodje bi temeljilo na JavaFX javapackager. Takšno orodje je bilo vključeno v Javo, vendar je bilo izrezano iz JDK 11 kot del odstranitve JavaFX.
  • Izboljšajte jezik z ujemanjem vzorcev za instanceof operater. To bi bila funkcija predogleda v JDK 14. Ujemanje vzorcev omogoča bolj jedrnato in varno izražanje skupne logike v programu, predvsem pogojnega pridobivanja komponent iz predmetov. Koda je lahko kratka in varna za tip.
  • Drugi predogled besedilnih blokov, večvrstični dobesedni niz, ki preprečuje potrebo po večini ubežnih zaporedij in niz samodejno oblikuje na predvidljiv način. Besedilni bloki bi razvijalcem omogočili nadzor nad formatom, ko bi to želeli, poenostavili pisanje programov Java in izboljšali berljivost nizov. Besedilni bloki so bili predogledani v JDK 13; ponovitev JDK 14 bi dodala ubežna zaporedja za upravljanje eksplicitnih presledkov in nadzor nove vrstice.
  • Opustitev kombinacije algoritmov za odstranjevanje smeti Parallel Scavenge in Serial Old. Vzdrževalci Java menijo, da se ta kombinacija uporablja zelo malo, vendar zahteva veliko vzdrževanja.
  • Prenos ZGC (Zbiralec smeti Z) v sistem Windows. Ta funkcija se je ponovno vrnila na uradno ciljni seznam, potem ko je bila vrnjena na seznam predlaganih za ciljanje.
  • API za dostop do tujega pomnilnika z uvedbo API-ja za programe Java za varen in učinkovit dostop do tujega pomnilnika zunaj kopice Java. Ta API bi moral služiti kot alternativa glavnim načinom dostopa programov Java do pomnilnika, vključno z nio.ByteBuffer in ned.misc. Nevarno. Novi API mora imeti možnost delovanja na različnih vrstah pomnilnika, vključno z naravnim, trajnim pomnilnikom in upravljanim kupom. API ne bi smel ogroziti varnosti JVM. Izločanje pomnilnika mora biti v izvorni kodi jasno. API naj bi pomagal pri razvoju domače podpore za interoperacijo, kar je cilj projekta Panama.
  • Zastaranje vrat Solaris / Sparc, Solaris / x64 in Linux / Sparc z namenom, da bi jih odstranili v prihodnji izdaji. Podpora za ta vrata bo omogočila sodelavcem OpenJDK, da pospešijo razvoj novih funkcij. Čeprav sta bili Solaris in Sparc povezovalni tehnologiji pri Sun Microsystems, prvotnem ustvarjalcu Jave, sta jih v tehnološkem prostoru v zadnjih letih nadomestili procesorji Linux OS in Intel.

Kje prenesti JDK 14

Odprtokodni JDK 14 lahko prenesete s spletnega mesta jdk.java.net za Linux, Windows in macOS. Prenos Oracle komercialne Java SE 14 lahko prenesete s spletnega mesta Oracle.com.

$config[zx-auto] not found$config[zx-overlay] not found