Programiranje

JDK 10: Kaj je novega v Javi 10

JDK 10, izvedba Java Standard Edition 10, je izšel 20. marca 2018. Ključne izboljšave vključujejo lokalne spremenljivke in izboljšave za zbiranje in prevajanje smeti.

JDK 10 naj bi bila le kratkoročna izdaja, javne posodobitve za JDK 10 pa naj bi se končale čez šest mesecev. Prihajajoči JDK 11, ki bo predviden septembra, bo dolgoročna podporna različica Java (LTS). Izdaje LTS so na voljo vsaka tri leta.

Oracle je določil šestmesečno kadenco za izdaje Java. Načrtovali smo, da bomo to nadgradnjo in naslednike poimenovali glede na leto in mesec izdaje, prva izdaja pa se bo imenovala Java 18.3. Toda ti načrti so bili zavrnjeni, potem ko so bili podani ugovori.

Kje prenesti Java JDK 10

JDK 10 lahko prenesete s spletnega mesta Oracle.

Nove in izboljšane funkcije v JDK 10

Ključne značilnosti JDK 10 vključujejo:

  • Sklepanje o tipu lokalne spremenljivke za izboljšanje jezika Java za razširitev sklepanja o tipih na deklaracije lokalnih spremenljivk z inicializatorji.
  • Vzporedno popolno zbiranje smeti za zbiralnik smeti G1 za izboljšanje najhujših zakasnitev.
  • Skupna raba podatkov razreda aplikacij za optimizacijo zagonskega časa in odtisa. Obstoječa funkcija skupne rabe podatkov je razširjena, tako da lahko razrede aplikacij shranite v skupni arhiv.
  • Na platformi Linux / x64 je mogoče uporabiti eksperimentalni pravkar pripravljeni prevajalnik Graal.
  • Zavedanje Dockerja. Pri zagonu v sistemih Linux bo navidezni stroj Java (JVM) vedel, ali se izvaja v vsebniku Docker. Informacije o vsebniku - število CPE-jev in skupni pomnilnik, dodeljen vsebniku - bo JVM izluščil, namesto da bi poizvedoval po operacijskem sistemu. (Število procesorjev, ki so na voljo procesu Java, se izračuna na podlagi določenih sklopov, delnic ali kvot procesorjev.)
  • Tri nove možnosti JVM, ki uporabnikom Dockerjevega vsebnika omogočajo večji nadzor nad sistemskim pomnilnikom.
  • Popravek napake, s katerim je bil popravljen mehanizem za pripenjanje pri poskusu pripenjanja iz gostiteljskega procesa v postopek Java, ki je v vsebniku Docker
  • Krajši čas zagona orodja jShell REPL, še posebej, če je v uporabi zagonska datoteka z veliko delčki.
  • Novi API-ji, ki omogočajo boljše ustvarjanje nespremenljivih zbirk. The copyOf,Set.copyOf, in Map.copyOf metode ustvarijo nove primerke zbirke iz obstoječih primerkov. Nove metode toUnmodifiableList, toUnmodifiableSet, in toUnmodifiableMap so bili dodani Zbiratelji razreda v paketu Stream, ki omogoča zbiranje elementov toka v nespremenljivo zbirko.
  • Sklepanje tipa lokalne spremenljivke za izboljšanje jezika za razširjanje sklepanja tipa na lokalne spremenljivke. Namen je zmanjšati "ceremonijo", povezano s kodiranjem, hkrati pa ohraniti zavezanost varnosti statičnega tipa.
  • Čist vmesnik zbiralnika smeti za izboljšanje izolacije izvorne kode različnih zbiralcev smeti. Cilji tega prizadevanja vključujejo boljšo modularnost za interno kodo za zbiranje smeti v navideznem stroju HotSpot in olajšanje dodajanja novega zbiralnika smeti v HotSpot.
  • Vzporedno polno zbiranje smeti za zbiralnik smeti G1. Namen je izboljšati najslabše latentne primere z izvajanjem vzporednosti.
  • Omogočanje storitve HotSpot, da dodeli kopico predmetov na alternativni pomnilniški napravi, kot je pomnilniški modul NVDIMM, ki jo določi uporabnik. Ta funkcija predvideva, da bodo prihodnji sistemi morda imeli heterogeno arhitekturo pomnilnika.
  • Omogočanje pravočasnega prevajalnika, ki temelji na Grall Java, za eksperimentalno uporabo na platformi Linux / x64.
  • Združitev odlagališč gozda JDK v eno odlagališče, da se poenostavi razvoj. Doslej je bila osnova kode razdeljena na več repozitov, kar lahko povzroči težave z upravljanjem izvorne kode.
  • Skupna raba podatkov razreda aplikacij za zmanjšanje odtisa z izmenjavo skupnih metapodatkov razreda med procesi. Izboljšan je tudi čas zagona.
  • Stiski na lokalni niti, za izvajanje povratnega klica na niti, ne da bi bilo treba izvesti globalno varno točko VM. Posamezne niti je bilo mogoče ustaviti namesto vseh niti ali brez niti.
  • Zagotavljanje privzetega nabora potrdil overitelja korenskega potrdila v JDK. Cilj je odprtokodna korenska potrdila v programu Oracle Java SE Root CA, da bodo OpenJDK bolj privlačni za razvijalce.

Dolgoročni načrt Java

Oracle je dejal, da je v obravnavi za naslednjo in novejšo različico Java SE:

  • Projekt Amber, ki je bil inkubator za manjše, produktivno usmerjene jezikovne funkcije, ki vključujejo sklepanje z lokalno spremenljivko, zmanjšuje slovesnost, povezano s pisanjem kode Java; izboljšane enume, da izboljšajo ekspresivnost konstrukcije enum z omogočanjem spremenljivk tipa v enumih in izvajanjem ostrejšega preverjanja tipa za konstante enum; in lambda ostanki, da se poveča uporabnost lambda in sklicev na metode.
  • Projekt Panama za medsebojno povezavo JVM in izvorne kode, ki vključuje klic izvorne funkcije iz JVM in dostop do izvornih podatkov iz JVM.
  • Valhalla, inkubatorski projekt za napredne Java VM in kandidate za jezikovne funkcije, vključno z vrednostnimi vrstami in generično specializacijo.
  • Projekt Loom, da se zmanjša zapletenost pisanja sočasnih aplikacij. Načrt zahteva dodajanje alternativnih izvedb niti v uporabniškem načinu, razmejena nadaljevanja in druge konstrukcije, ki vključujejo manipulacijo z nizom klicev. Glavni cilj tega predloga je ponuditi alternativno izvedbo niti, ki jo upravljajo razporejevalniki, napisani v Javi. Programski model Java navadnih niti Java bi bil ohranjen, medtem ko se izboljša zmogljivost in zmanjša odtis.

Z novim šestmesečnim razporedom izdaj bodo funkcije, ki zamudijo eno izdajo, morda zamujale že za šest mesecev, ko izide naslednja izdaja. Poleg tega, kar je bilo napovedano za JDK 10, se Oracle še ni zavezal, kdaj bo katera od novih predlaganih funkcij dejansko na voljo v Javi.

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