Programovanie

JDK 10: Čo je nové v prostredí Java 10

JDK 10, implementácia Java Standard Edition 10, bola vydaná 20. marca 2018. Medzi kľúčové vylepšenia patria typy miestnych premenných, ako aj vylepšenia pre zber a kompiláciu odpadu.

JDK 10 je naplánované iba na krátkodobé vydanie a verejné aktualizácie JDK 10 sa majú skončiť o šesť mesiacov. Nadchádzajúca JDK 11, ktorá má vyjsť v septembri, bude verziou Java s dlhodobou podporou (LTS). Vydania LTS sú splatné každé tri roky.

Spoločnosť Oracle nastavila kadenciu vydávania na šesť mesiacov pre vydania Java. Existovali plány na pomenovanie tejto aktualizácie a jej nástupcov na základe roku a mesiaca vydania, pričom prvé vydanie sa malo nazývať Java 18.3. Po vznesení námietok boli tieto plány zrušené.

Kde stiahnuť Java JDK 10

JDK 10 si môžete stiahnuť z webových stránok spoločnosti Oracle.

Nové a vylepšené funkcie v JDK 10

Medzi kľúčové vlastnosti JDK 10 patria:

  • Odvodenie typu lokálnej premennej, aby sa vylepšil jazyk Java, aby sa rozšíril odvodenie typu od deklarácií miestnych premenných pomocou inicializátorov.
  • Paralelný úplný zber odpadu pre zberača odpadu G1 na zlepšenie najhorších latencií.
  • Zdieľanie údajov triedy aplikácií na optimalizáciu času spustenia a stopy. Existujúca funkcia zdieľania údajov o triede je rozšírená, takže triedy aplikácií je možné umiestniť do zdieľaného archívu.
  • Na platforme Linux / x64 je možné použiť experimentálny kompilátor just-in-time, Graal.
  • Dockerovo povedomie. Keď beží na systémoch Linux, Java Virtual Machine (JVM) bude vedieť, či je spustený v kontajneri Docker. Informácie špecifické pre kontajner - počet CPU a celková pamäť pridelená kontajneru - JVM extrahuje namiesto dotazu na operačný systém. (Počet CPU dostupných pre proces Java sa počíta zo špecifikovaných množín, zdieľaní alebo kvót procesorov.)
  • Tri nové možnosti JVM, ktoré užívateľom kontajnerov Docker poskytujú väčšiu kontrolu nad systémovou pamäťou.
  • Oprava chyby na opravu mechanizmu pripojenia pri pokuse o pripojenie z hostiteľského procesu k procesu Java, ktorý je v kontajneri Docker.
  • Kratšie časy spustenia nástroja jShell REPL, najmä ak sa používa štartovací súbor s mnohými úryvkami.
  • Nové rozhrania API, ktoré umožňujú lepšie vytváranie nemodifikovateľných zbierok. The kópia,Set.copyOfa Map.copyOf metódy vytvárajú nové inštancie kolekcie z existujúcich inštancií. Nové metódy toUnmodifiableList, toUnmodifiableSeta toUnmodifiableMap boli pridané do Zberatelia triedy v balíku Stream, čo umožňuje zhromaždiť prvky Stream do nemodifikovateľnej kolekcie.
  • Odvodenie typu lokálnej premennej, aby sa vylepšil jazyk, aby sa rozšíril odvodenie typu od miestnych premenných. Zámerom je znížiť „obrad“ spojený s kódovaním pri zachovaní záväzku k bezpečnosti statického typu.
  • Čisté rozhranie na zhromažďovanie odpadu na zlepšenie izolácie zdrojového kódu rôznych zberačov. Ciele tohto úsilia zahŕňajú lepšiu modularitu pre interný kód na zhromažďovanie odpadu vo virtuálnom stroji HotSpot a uľahčenie pridania nového zberača odpadu do HotSpot.
  • Paralelný úplný zber odpadu pre zberača odpadu G1. Zámerom je zlepšiť latenciu v najhorších prípadoch zavedením paralelizmu.
  • Povolenie služby HotSpot na pridelenie haldy objektov na alternatívnom pamäťovom zariadení, napríklad na pamäťovom module NVDIMM, zadanom používateľom. Táto vlastnosť predpokladá, že budúce systémy môžu mať heterogénnu architektúru pamäte.
  • Umožnenie experimentálneho použitia kompilátora just-in-time Grall Java založeného na platforme Linux / x64.
  • Konsolidácia úložísk lesa JDK do jedného úložiska s cieľom zefektívniť rozvoj. Databáza kódov bola doteraz rozdelená do niekoľkých opakovaní, čo môže spôsobiť problémy so správou zdrojového kódu.
  • Zdieľanie údajov o triede aplikácií, aby sa znížila stopa zdieľaním bežných metaúdajov tried medzi procesmi. Zlepšuje sa tiež čas spustenia.
  • Miestne nadviazanie spojenia medzi vláknami na vykonanie spätného volania na vláknach bez vykonania globálneho bodu zabezpečenia VM. Jednotlivé vlákna bolo možné zastaviť namiesto všetkých vlákien alebo bez nich.
  • Poskytnutie predvolenej sady certifikátov autority koreňového certifikátu v JDK. Cieľom je otvoriť koreňové certifikáty open-source v programe Oracle SE Root CA spoločnosti Oracle, aby boli zostavy OpenJDK lákavejšie pre vývojárov.

Dlhodobý plán Java

Tu je to, o čom spoločnosť Oracle uviedla, že sa uvažuje o ďalšej a novšej verzii Java SE:

  • Projekt Amber, ktorý bol inkubátorom menších jazykových funkcií zameraných na produktivitu, ktoré zahŕňajú odvodenie typu lokálnych premenných, na zníženie ceremoniálu spojeného s písaním kódu Java; vylepšené výčty, na zlepšenie expresivity konštruktu enum povolením typových premenných vo výčtoch a vykonaním ostrejšej kontroly typu pre konštanty výčtu; a zvyšky lambda na zvýšenie použiteľnosti referencie lambda a metód.
  • Projekt Panama na prepojenie JVM a natívneho kódu, ktorý obsahuje volanie natívnych funkcií z JVM a prístup k natívnym dátam z JVM.
  • Valhalla, projekt inkubátora pre pokročilých kandidátov na Java VM a jazykové funkcie vrátane typov hodnôt a všeobecnej špecializácie.
  • Project Loom, aby sa znížila zložitosť pri písaní súbežných aplikácií. Plán vyžaduje pridanie alternatívnych implementácií vlákien v užívateľskom režime, ohraničených pokračovaní a ďalších konštrukcií zahŕňajúcich manipuláciu so zásobníkom volaní. Hlavným cieľom tohto návrhu je ponúknuť alternatívnu implementáciu vlákien spravovanú plánovačmi napísanými v Jave. Programovací model Java pre bežné vlákna Java by zostal zachovaný, zatiaľ čo sa zlepší výkon a zníži stopa.

S novým harmonogramom vydávania na šesť mesiacov sa funkcie, ktorým chýba jedno vydanie, môžu odložiť až o šesť mesiacov, keď vyjde ďalšie vydanie. Okrem toho, čo bolo oznámené pre JDK 10, sa spoločnosť Oracle nezaviazala k tomu, kedy bude ktorákoľvek z nových navrhovaných funkcií skutočne sprístupnená v prostredí Java.

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