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
, aMap.copyOf
metody vytvářejí nové instance kolekce ze stávajících instancí. Nové metodytoUnmodifiableList
,toUnmodifiableSet
, atoUnmodifiableMap
byly přidány doSbě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ě.