Programování

JDK 14: Nové funkce v prostředí Java 14

Java Development Kit (JDK) 14 dosáhla GA a přichází ve verzi všeobecné dostupnosti pro produkční nasazení. Upgrade na standardní Javu zahrnuje nové funkce, jako je streamování událostí JDK Flight Recorder, porovnávání vzorů a výrazy přepínačů.

JDK 14 je uvolnění funkcí Javy spíše než vydání dlouhodobé podpory (LTS), které následuje po šestiměsíční kadenci vydání uvolněné pro Javu. JDK 14 obdrží bezpečnostní aktualizace v dubnu a červenci, než bude nahrazen JDK 15, což je také vydání jiné než LTS, které má vyjít v září. Aktuální vydání LTS je JDK 11.

Mezi nové funkce a vylepšení JDK 14 patří:

  • Streamování událostí JFR poskytuje rozhraní API pro nepřetržitou spotřebu dat JFR z aplikací v procesu i mimo proces. JFR je nástroj pro shromažďování profilovacích a diagnostických dat o aplikaci Java a JVM, jak jsou spuštěny. Návrh streamování událostí zaznamenává stejnou sadu událostí jako v případě bez streamování, s režií menší než jedno procento, pokud je to možné. Streamování událostí musí existovat společně s non-streamingovými nahrávkami, a to jak na disku, tak na paměti. Motivací tohoto návrhu je situace, kdy HotSpot VM vydává více než 500 datových bodů pomocí JFR, většina z nich je k dispozici pouze analýzou souborů protokolu. V současné době musí uživatel zahájit nahrávání, zastavit jej, vypsat obsah na disk a poté analyzovat záznamový soubor. To funguje dobře pro profilování aplikací, ale ne pro účely monitorování. Příkladem monitorování využití je řídicí panel, který zobrazuje dynamické aktualizace dat. Při vytváření záznamu existuje režie, například kopírování dat z úložiště disku do samostatného záznamového souboru. Pokud by existoval způsob, jak číst data zaznamenávaná z úložiště disku bez vytvoření nového záznamového souboru, dalo by se vyhnout velké části režie.
  • Plánované zlepšeníNullPointerExceptions se týká zlepšení použitelnosti výjimek generovaných JVM tím, že přesně popisuje, která proměnná byla null. Autoři návrhu se snaží poskytnout užitečné informace vývojářům a pracovníkům podpory o předčasném ukončení programu a zlepšit porozumění programu jasnějším přidružením dynamické výjimky ke statickému kódu programu. Jedním z cílů je snížit zmatek a obavy vývojářů NullPointerExceptions.
  • Non-volatile mapped byte buffers would add new JDK-specific file mapping modes that allow the FileChannel API to be used to create MappedByteBuffer instance, které odkazují na energeticky nezávislou paměť (NVM). NVM umožňuje programátorům vytvářet a aktualizovat stav programu napříč běhy programu, aniž by vznikly značné náklady na kopírování nebo překlad, které obvykle vyžadují operace vstupu a výstupu. To je zvláště významné u transakčních programů. Hlavním cílem tohoto návrhu na vylepšení JDK je tedy zajistit, aby klienti mohli přistupovat a aktualizovat NVM z programu Java soudržně a efektivně. Sekundárním cílem je implementovat toto chování potvrzení pomocí omezeného interního API JDK definovaného ve třídě Nebezpečný, takže jej mohou znovu použít i jiné třídy než MappedByteBuffer může být potřeba zavázat se k NVM. Dalším cílem je umožnit sledování vyrovnávacích pamětí mapovaných přes NVM pomocí stávajících rozhraní API pro monitorování a správu. Cílové platformy OS / CPU zahrnují Linux / x64 a Linux / AArch64.
  • Přepínací výrazy zjednodušují kódování rozšířenímpřepínač takže jej lze použít buď jako příkaz, nebo jako výraz. Očekává se, že výrazy přepínače budou v JDK 14 trvalým prvkem po náhledu v JDK 12 i JDK 13. Přepínačové výrazy se také připravují na použití porovnávání vzorů v přepínač. Porovnávání vzorů umožňuje vývojářům podmíněně extrahovat komponenty z objektů výstižněji a bezpečněji.
  • Přidělení paměti s vědomím NUMA pro sběratel odpadků G1, určené ke zlepšení výkonu G1 na velkých počítačích.
  • Odebrání garbage collector Concurrent Mark Sweep (CMS), který byl dříve zastaralý a navržený k odstranění. Vystoupili nástupci CMS, včetně ZGC a Shenandoah.
  • Přenos ZGC na MacOS. Dosud byla podporována pouze v systému Linux.
  • Odebrání nástrojů pack200 a unpack200 a Pack200 API v java.util.jar balík. Všechny byly v prostředí Java SE 11 zastaralé s úmyslem je v budoucnu odstranit. Pack200 je schéma komprese pro soubory JAR.
  • Záznamy, které by poskytovaly kompaktní syntaxi pro deklarování tříd, které jsou průhlednými držáky pro mělce neměnná data. Záznamy usnadňují vytváření tříd, které jsou v zásadě datovými nosiči, aniž byste museli psát hodně standardních záznamů. Návrh uvádí, že by mělo být snadné a výstižné deklarovat mělce neměnné, dobře chované nominální datové agregáty.
  • Balicí nástroj ve fázi vývoje inkubátoru pro balení samostatných aplikací Java. Tento nástroj by byl založen na JavaFX javapackager. Takový nástroj byl zahrnut do Javy, ale byl odstraněn z JDK 11 jako součást odstranění JavaFX.
  • Vylepšete jazyk přizpůsobením vzoru pro instanceof operátor. Toto by byla funkce náhledu v JDK 14. Porovnávání vzorů umožňuje výstižnější a bezpečnější vyjádření běžné logiky v programu, zejména podmíněné extrakce komponent z objektů. Kód může být stručný a typově bezpečný.
  • Druhý náhled textových bloků, víceřádkový řetězcový literál, který se vyhne potřebě většiny únikových sekvencí a automaticky formátuje řetězec předvídatelným způsobem. Textové bloky by poskytly vývojáři kontrolu nad formátem, pokud je to žádoucí, zjednodušily psaní programů Java a zlepšily čitelnost řetězců. Náhled textových bloků byl v JDK 13; iterace JDK 14 by přidala řídicí sekvence pro správu explicitních mezer a ovládání nového řádku.
  • Ukončení podpory kombinace algoritmů Parallel Scavenge a Serial Old garbage collection. Správci prostředí Java věří, že tato kombinace se používá velmi málo, ale vyžaduje hodně údržby.
  • Přenos ZGC (Z Garbage Collector) do Windows. Tato funkce se znovu přesunula do oficiálně cíleného seznamu poté, co byla vrácena zpět do seznamu navrženého pro cílení.
  • API pro přístup do cizí paměti se zavedením API pro programy Java pro bezpečný a efektivní přístup k cizí paměti mimo haldu Java. Toto API by mělo sloužit jako alternativa k hlavním cestám, kterými programy Java přistupují k paměti, včetně nio.ByteBuffer a slunce.misc.nebezpečný. Nové API by mělo být schopné pracovat na různých druzích paměti, včetně nativní, trvalé paměti a spravované haldy. API by nemělo být možné podkopat bezpečnost JVM. Uvolnění paměti by mělo být ve zdrojovém kódu explicitní. Očekává se, že API pomůže při vývoji nativní podpory spolupráce, která je cílem projektu Panama.
  • Ukončení podpory portů Solaris / Sparc, Solaris / x64 a Linux / Sparc se záměrem je v budoucím vydání odstranit. Ukončení podpory těchto portů umožní přispěvatelům OpenJDK urychlit vývoj nových funkcí. Přestože Solaris a Sparc byly základními technologiemi společnosti Sun Microsystems, původního tvůrce prostředí Java, v posledních letech byly v technologickém prostoru nahrazeny procesory Linux a Intel.

Kde stáhnout JDK 14

Můžete si stáhnout open source JDK 14 z jdk.java.net pro Linux, Windows a macOS. Ke stažení Oracle commercial Java SE 14 ke stažení z Oracle.com.

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