Ohjelmointi

JDK 14: Java 14: n uudet ominaisuudet

Java Development Kit (JDK) 14 on saavuttanut GA: n, joka on toimitettu yleiskäytettävissä olevaan julkaisuun tuotantokäyttöön. Päivitys Java-vakioon sisältää uusia ominaisuuksia, kuten JDK Flight Recorder -tapahtumien suoratoiston, kuvion sovituksen ja vaihtolausekkeet.

JDK 14 on Java-ominaisuusjulkaisu pikemminkin kuin pitkäaikaisen tuen (LTS) julkaisu Java-ohjelmalle asetetun kuuden kuukauden julkaisun jälkeen. JDK 14 saa tietoturvapäivitykset huhti- ja heinäkuussa, ennen kuin JDK 15 korvaa sen. Se on myös ei-LTS-julkaisu, joka on määrä julkaista syyskuussa. Nykyinen LTS-julkaisu on JDK 11.

JDK 14: n uusia ominaisuuksia ja parannuksia ovat:

  • JFR Event Streaming tarjoaa API: n JFR-tietojen jatkuvaan kulutukseen sekä prosessin sisäisistä että prosessin ulkopuolisista sovelluksista. JFR on työkalu profilointi- ja diagnostiikkatietojen keräämiseen Java-sovelluksesta ja JVM: stä niiden ollessa käynnissä. Tapahtumien suoratoistoehdotus tallentaa samat tapahtumasarjat kuin muuhun kuin suoratoistotapaukseen, yleiskustannusten ollessa alle yksi prosentti, jos mahdollista. Tapahtumien suoratoiston on oltava rinnakkain muiden kuin suoratoistettujen tallenteiden kanssa, sekä levy- että muistipohjaisten. Tämän ehdotuksen motivointi on tilanne, jossa HotSpot VM lähettää yli 500 datapistettä JFR: n avulla, joista suurin osa on käytettävissä vain jäsentämällä lokitiedostoja. Tällä hetkellä käyttäjän on aloitettava äänitys, lopetettava se, vietävä sisältö levylle ja sitten jäsennettävä tallennustiedosto. Tämä toimii hyvin sovellusten profiloinnissa, mutta ei seurantatarkoituksiin. Esimerkki käytön valvonnasta on kojelauta, joka näyttää dynaamiset päivitykset tietoihin. Tallennuksen luominen, kuten tietojen kopioiminen levyvarastosta erilliseen tallennustiedostoon, on ylimääräistä. Jos levytietovarastosta tallennettavaa tietoa voitaisiin lukea luomatta uutta tallennustiedostoa, suuri osa yleiskustannuksista voitaisiin välttää.
  • Suunniteltu parannusNullPointerExceptions liittyy JVM: n tuottamien poikkeusten käytettävyyden parantamiseen kuvaamalla tarkalleen mikä muuttuja oli nolla. Ehdotuksen tekijät haluavat tarjota kehittäjille ja tukihenkilöstölle hyödyllistä tietoa ohjelman ennenaikaisesta lopettamisesta ja parantaa ohjelman ymmärtämistä yhdistämällä dynaaminen poikkeus selkeämmin staattiseen ohjelmakoodiin. Yksi tavoite on vähentää hämmennystä ja huolta kehittäjistä NullPointerExceptions.
  • Haihtumattomat kartoitetut tavupuskurit lisäisivät uusia JDK-spesifisiä tiedostokartoitustiloja, jotka sallivat FileChannel-sovellusliittymän luomisen MappedByteBuffer instansseja, jotka viittaavat haihtumattomaan muistiin (NVM). NVM antaa ohjelmoijille mahdollisuuden rakentaa ja päivittää ohjelmatilaa ohjelmakierroksilla ilman, että aiheutuu merkittäviä kopiointi- tai käännöskustannuksia, joita syöttö- ja tulostustoiminnot yleensä edellyttävät. Tämä on erityisen merkittävää kauppaohjelmissa. Siksi tämän JDK Enhancement -ehdotuksen päätavoitteena on varmistaa, että asiakkaat voivat käyttää ja päivittää NVM: ää Java-ohjelmasta johdonmukaisesti ja tehokkaasti. Toissijaisena tavoitteena on toteuttaa tämä sitoutumiskäyttäytyminen käyttämällä luokassa määriteltyä rajoitettua, JDK-sisäistä sovellusliittymää Vaarallinen, joten sitä voidaan käyttää uudelleen muissa luokissa kuin MappedByteBuffer jonka täytyy joutua sitoutumaan NVM: ään. Toinen tavoite on sallia NVM: n kautta kartoitettujen puskurien seuraaminen olemassa olevilla sovellusliittymillä seurantaa ja hallintaa varten. Kohde-OS / CPU -alustat sisältävät Linux / x64 ja Linux / AArch64.
  • Kytkinlausekkeet yksinkertaistavat koodausta laajentamallavaihtaa jotta sitä voidaan käyttää joko lauseena tai lausekkeena. Kytkinlausekkeiden odotetaan olevan pysyvä ominaisuus JDK 14: ssä sen jälkeen, kun niitä on esikatseltu sekä JDK 12: ssa että JDK 13: ssa. vaihtaa. Kuvion sovittamisen avulla kehittäjät voivat ehdollisesti poimia komponentteja esineistä tiiviimmin ja turvallisemmin.
  • NUMA-tietoinen muistin allokointi G1-roskakorille, jonka tarkoituksena on parantaa G1-suorituskykyä isoissa koneissa.
  • Aikaisemmin vanhentuneen ja poistettavaksi tarkoitetun CMS-roskakorin poistaminen. CMS: n seuraajia on syntynyt, mukaan lukien ZGC ja Shenandoah.
  • ZGC: n siirtäminen MacOSiin. Sitä on toistaiseksi tuettu vain Linuxissa.
  • Pack200- ja Unpack200-työkalujen ja Pack200-sovellusliittymän poistaminen java.util.jar paketti. Nämä kaikki poistettiin käytöstä Java SE 11: ssä aikomuksena poistaa ne tulevaisuudessa. Pack200 on JAR-tiedostojen pakkausmenetelmä.
  • Tietueet, jotka tarjoavat kompaktin syntaksin luokkien ilmoittamiseksi, jotka ovat läpinäkyviä haltijoita matalasti muuttumattomille tiedoille. Tietueiden avulla on helppo luoda luokkia, jotka ovat olennaisesti tietovälineitä tarvitsematta kirjoittaa paljon kattilalevyä. Ehdotuksen mukaan on oltava helppoa ja ytimekästä julistaa matalasti muuttumattomia, hyvin käyttäytyviä, nimellisiä data-aggregaatteja.
  • Pakkaustyökalu inkubaattorivaiheessa itsenäisten Java-sovellusten pakkaamiseen. Työkalu perustuisi JavaFX: ään javapackager. Tällainen työkalu oli sisällytetty Java-ohjelmaan, mutta se leikattiin JDK 11: stä osana JavaFX: n poistamista.
  • Paranna kieltä esiintymä operaattori. Tämä olisi esikatseluominaisuus JDK 14: ssä. Kuvion sovitus antaa ohjelman yleiselle logiikalle, lähinnä komponenttien ehdolliselle purkamiselle esineistä, yksiselitteisemmän ja turvallisemman ilmaisun. Koodista voidaan tehdä lyhyt ja tyyppiturvallinen.
  • Toinen tekstilohkojen esikatselu, monirivinen merkkijono-literaali, joka välttää useimpien pakosarjojen tarpeen ja muotoilee merkkijonon automaattisesti ennustettavalla tavalla. Tekstilohkot antaisivat kehittäjälle hallinnan muodon haluttaessa, yksinkertaistavat Java-ohjelmien kirjoittamista ja parantavat merkkijonojen luettavuutta. Tekstilohkoja esikatseltiin JDK 13: ssa; JDK 14-iteraatio lisäisi pakosarjoja eksplisiittisten tyhjien tilojen hallintaan ja uuden rivin hallintaan.
  • Parallel Scavenge- ja Serial Old roskienkeräysalgoritmien yhdistelmän vanhentaminen. Java-ylläpitäjät uskovat, että tätä yhdistelmää käytetään hyvin vähän, mutta se vaatii paljon ylläpitoa.
  • ZGC: n (Z Garbage Collector) siirtäminen Windowsiin. Tämä ominaisuus on jälleen siirtynyt virallisesti kohdennettuun luetteloon sen jälkeen, kun se on palattu takaisin kohdistusluetteloon.
  • Ulkomaisen muistin käyttöliittymä ja Java-ohjelmien sovellusliittymä, jolla vieraat muistit voidaan käyttää turvallisesti ja tehokkaasti Java-kasan ulkopuolella. Tämän sovellusliittymän tulisi toimia vaihtoehtona tärkeimmille keinoille, joilla Java-ohjelmat käyttävät muistia, mukaan lukien nio.ByteBuffer ja sun.misc. vaarallinen. Uuden sovellusliittymän pitäisi pystyä toimimaan monenlaisella muistilla, mukaan lukien alkuperäinen, pysyvä muisti ja hallittu kasa. API: n ei pitäisi olla mahdollista heikentää JVM: n turvallisuutta. Lähdekoodissa tulisi olla nimenomainen muistinjako. API: n odotetaan auttavan natiivin yhteistyön tuen kehittämisessä, mikä on Panama-projektin tavoite.
  • Solaris / Sparc, Solaris / x64 ja Linux / Sparc -porttien vanhentaminen tarkoituksena poistaa ne tulevassa julkaisussa. Näiden porttien tuen pudottaminen antaa OpenJDK: n avustajille mahdollisuuden nopeuttaa uusien ominaisuuksien kehittämistä. Vaikka Solaris ja Sparc olivat Sun Microsystemsin, Java-alkuperäisen luojan, linja-autotekniikoita, Linux-käyttöjärjestelmä ja Intel-prosessorit ovat korvanneet ne viime vuosina tekniikka-alueella.

Mistä ladata JDK 14

Voit ladata avoimen lähdekoodin JDK 14: n osoitteesta jdk.java.net Linuxille, Windowsille ja macOS: lle. Voit ladata Oracle kaupalliset Java SE 14 -lataukset osoitteesta Oracle.com.

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