Programování

JDK 10: Co je nového v prostředí Java 10

JDK 10, implementace Java Standard Edition 10, byla vydána 20. března 2018. Mezi hlavní vylepšení patří typy místních proměnných i vylepšení pro sběr a kompilaci odpadků.

JDK 10 má být jen krátkodobým vydáním a veřejné aktualizace pro JDK 10 mají skončit za šest měsíců. Nadcházející JDK 11, který má vyjít v září, bude verzí Java s dlouhodobou podporou (LTS). Vydání LTS jsou splatná každé tři roky.

Společnost Oracle nastavila šestiměsíční kadenci vydání pro vydání Java. Existovaly plány pojmenovat tento upgrade a jeho nástupce na základě roku a měsíce vydání, přičemž první vydání se jmenovalo Java 18.3. Ale tyto plány byly zrušeny poté, co byly vzneseny námitky.

Kam stáhnout Java JDK 10

JDK 10 si můžete stáhnout z webu Oracle.

Nové a vylepšené funkce v JDK 10

Mezi klíčové funkce JDK 10 patří:

  • Odvození typu místní proměnné, vylepšení jazyka Java k rozšíření odvození typu k deklaracím místních proměnných pomocí inicializátorů.
  • Parallel full garbage collection for the G1 garbage collector, to zlepšit nejhorší latence.
  • Sdílení dat třídy aplikací pro optimalizaci doby spuštění a stopy. Stávající funkce sdílení třídních dat je rozšířena, takže třídy aplikací lze umístit do sdíleného archivu.
  • Na platformě Linux / x64 lze použít experimentální kompilátor just-in-time, Graal.
  • Docker povědomí. Když běží na systémech Linux, Java Virtual Machine (JVM) bude vědět, zda běží v kontejneru Docker. Informace specifické pro kontejner - počet procesorů a celková paměť přidělená kontejneru - bude JVM extrahovat namísto dotazování na operační systém. (Počet procesorů dostupných pro proces Java se počítá ze specifikovaných sad, sdílení nebo kvót procesorů.)
  • Tři nové možnosti JVM, které uživatelům kontejnerů Docker dávají větší kontrolu nad systémovou pamětí.
  • Oprava chyby k opravě mechanismu připojení při pokusu o připojení z hostitelského procesu k procesu Java, který je v kontejneru Docker.
  • Kratší doby spuštění nástroje jShell REPL, zvláště když se používá počáteční soubor s mnoha úryvky.
  • Nová rozhraní API pro lepší umožnění vytváření nemodifikovatelných sbírek. The kopie,Set.copyOf, a Map.copyOf metody vytvářejí nové instance kolekce ze stávajících instancí. Nové metody toUnmodifiableList, toUnmodifiableSet, a toUnmodifiableMap byly přidány do Sběratelé třídy v balíčku Stream, umožňující shromažďování prvků Stream do nemodifikovatelné kolekce.
  • Odvození typu místní proměnné, aby se vylepšil jazyk, aby se rozšířila odvození typu od místních proměnných.A ​​local-variable type inference, to enhan the language to extend type inference to local variables. Záměrem je snížit „obřad“ spojený s kódováním při zachování závazku k bezpečnosti statického typu.
  • Čisté rozhraní pro uvolňování paměti pro zlepšení izolace zdrojového kódu různých garbage collectorů. Cíle tohoto úsilí zahrnují lepší modularitu pro interní kód pro sbírání odpadků ve virtuálním stroji HotSpot a snazší přidání nového garbage collectoru do HotSpotu.
  • Parallel full garbage collection for the G1 garbage collector. Záměrem je zlepšit nejhorší latence implementací paralelismu.
  • Povolení HotSpotu přidělit haldu objektů na alternativním paměťovém zařízení, jako je paměťový modul NVDIMM, určený uživatelem. Tato funkce předpokládá, že budoucí systémy mohou mít heterogenní architektury paměti.
  • Povolení experimentálního použití kompilátoru just-in-time založeného na Grall Java na platformě Linux / x64.
  • Konsolidace úložišť doménové struktury JDK do jednoho úložiště za účelem zefektivnění vývoje. Kódová základna byla dosud rozdělena do více úložišť, což může způsobit problémy se správou zdrojového kódu.
  • Sdílení údajů o třídě aplikací, aby se snížila stopa sdílením metadat společné třídy napříč procesy. Zlepšila se také doba spuštění.
  • Místní navázání spojení vlákna, pro provedení zpětného volání na vláknach bez provedení globálního bodu zabezpečení virtuálního počítače. Jednotlivá vlákna mohla být zastavena namísto všech vláken nebo žádná vlákna.
  • Poskytnutí výchozí sady certifikátů kořenové certifikační autority v JDK. Cílem je otevřít kořenové certifikáty s otevřeným zdrojovým kódem v programu Oracle SE Root CA společnosti Oracle, aby byly verze OpenJDK lákavější pro vývojáře.

Dlouhodobý plán Java

Zde je to, o čem společnost Oracle uvedla, že se zvažuje pro další a novější verze prostředí Java SE:

  • Projekt Amber, který byl inkubátorem pro menší jazykové funkce zaměřené na produktivitu, které zahrnují odvození typu místní proměnné, ke snížení obřadu spojeného s psaním kódu Java; vylepšené výčty, ke zlepšení expresivity konstruktu výčtu povolením typových proměnných ve výčtech a provedením ostřejší kontroly typu pro konstanty výčtu; a zbytky lambda, aby se zvýšila použitelnost odkazů lambda a metod.
  • Project Panama, to interconnect JVM and native code, featuring native function calling from the JVM and native data access from the JVM.
  • Valhalla, projekt inkubátoru pro pokročilé kandidáty na Java VM a jazykové funkce, včetně typů hodnot a obecné specializace.
  • Project Loom, ke snížení složitosti při psaní souběžných aplikací. Plán volá po přidání alternativních implementací podprocesů v uživatelském režimu, oddělovaných pokračování a dalších konstrukcí zahrnujících manipulaci se zásobníkem volání. Hlavním cílem tohoto návrhu je nabídnout alternativní implementaci vláken, spravovaných plánovači napsanými v Javě. Programovací model Java běžných podprocesů Java by zůstal zachován, zatímco se zlepší výkon a sníží se stopa.

S novým šestiměsíčním časovým plánem se funkce, kterým chybí jedno vydání, mohou odložit až o šest měsíců, jakmile vyjde další vydání. Kromě toho, co bylo oznámeno pro JDK 10, se společnost Oracle nezavázala, kdy bude některá z nově navržených funkcí skutečně zpřístupněna v Javě.

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