Programovanie

JDK 14: Nové funkcie v prostredí Java 14

Java Development Kit (JDK) 14 dosiahla GA, prichádza vo verzii všeobecnej dostupnosti pre produkčné nasadenia. Aktualizácia na štandardnú Javu obsahuje nové funkcie, ako napríklad streamovanie udalostí JDK Flight Recorder, porovnávanie vzorov a výrazy prepínačov.

JDK 14 je skôr vydaním funkcií v Jave ako vydaním dlhodobej podpory (LTS) v nadväznosti na šesťmesačnú kadenciu vydávania nastavenú pre Javu. JDK 14 dostane bezpečnostné aktualizácie v apríli a júli, potom bude nahradený JDK 15, taktiež vydaním iného ako LTS, ktoré má vyjsť v septembri. Aktuálne vydanie LTS je JDK 11.

Medzi nové funkcie a vylepšenia v JDK 14 patria:

  • Streamovanie udalostí JFR poskytuje rozhranie API na nepretržitú spotrebu údajov JFR z aplikácií v procese aj mimo procesu. JFR je nástroj na zhromažďovanie profilovacích a diagnostických údajov o aplikácii Java a JVM, keď sú spustené. Návrh streamovania udalostí zaznamenáva rovnakú skupinu udalostí ako v prípade bez streamovania, s réžiou, ak je to možné, s menej ako jedným percentom. Streamovanie udalostí musí existovať súčasne s non-streamingovými nahrávkami, a to diskovými aj pamäťovými. Motiváciou tohto návrhu je situácia, v ktorej HotSpot VM emituje viac ako 500 dátových bodov pomocou JFR, pričom väčšina z nich je k dispozícii iba analýzou súborov denníka. V súčasnosti musí používateľ spustiť nahrávanie, zastaviť ho, vypísať obsah na disk a potom analyzovať nahrávací súbor. To funguje dobre na profilovanie aplikácií, ale nie na účely monitorovania. Príkladom monitorovania používania je informačný panel, ktorý zobrazuje dynamické aktualizácie údajov. Existuje vytváranie nahrávok, napríklad kopírovanie údajov z úložiska disku do samostatného záznamového súboru. Ak by existoval spôsob, ako čítať zaznamenané údaje z diskového úložiska bez vytvorenia nového záznamového súboru, dalo by sa vyhnúť veľkej časti réžie.
  • Plánované zlepšenieNullPointerExceptions sa týka zlepšenia použiteľnosti výnimiek generovaných JVM presným popisom, ktorá premenná bola nulová. Autori návrhu sa snažia poskytnúť vývojárom a podporným pracovníkom užitočné informácie o predčasnom ukončení programu a zlepšiť porozumenie programu jasnejším spojením dynamickej výnimky so statickým programovým kódom. Jedným z cieľov je znížiť zmätok a obavy vývojárov 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 inštancie, ktoré odkazujú na energeticky nezávislú pamäť (NVM). NVM umožňuje programátorom vytvárať a aktualizovať stav programu v priebehu jeho spustenia bez toho, aby vznikli značné náklady na kopírovanie alebo preklad, ktoré zvyčajne vyžadujú vstupné a výstupné operácie. To je obzvlášť dôležité pre transakčné programy. Hlavným cieľom tohto návrhu vylepšenia JDK je teda zabezpečiť, aby klienti mohli pristupovať a aktualizovať NVM z programu Java koherentne a efektívne. Sekundárnym cieľom je implementácia tohto správania potvrdenia pomocou obmedzeného interného rozhrania JDK definovaného v triede Nebezpečný, takže ho môžu znova použiť aj iné triedy ako MappedByteBuffer ktoré sa možno bude musieť zaviazať k NVM. Ďalším cieľom je umožniť sledovanie vyrovnávacích pamätí mapovaných cez NVM pomocou existujúcich rozhraní API na monitorovanie a správu. Cieľové platformy OS / CPU zahŕňajú Linux / x64 a Linux / AArch64.
  • Prepínanie výrazov zjednodušuje kódovanie rozšírenímprepínač aby ho bolo možné použiť buď ako výrok, alebo ako výraz. Očakáva sa, že výrazy prepínačov budú v JDK 14 trvalou funkciou po zobrazení ukážky v JDK 12 aj JDK 13. Prepínače výrazov sa tiež pripravujú na použitie porovnávania vzorov v prepínač. Priraďovanie vzorov umožňuje vývojárom podmienenejšie a bezpečnejšie extrahovať komponenty z objektov.
  • Pridelenie pamäte s vedomím NUMA pre zberača odpadu G1, určené na zlepšenie výkonu G1 na veľkých strojoch.
  • Odstránenie zberača odpadu Concurrent Mark Sweep (CMS), ktorý bol predtým zastaraný a určený na odstránenie. Nastúpili nástupcovia CMS vrátane ZGC a Shenandoah.
  • Portovanie ZGC na MacOS. Zatiaľ je podporovaný iba v systéme Linux.
  • Odstránenie nástrojov pack200 a unpack200 a Pack200 API v systéme Windows java.util.jar balíček. Všetky boli v prostredí Java SE 11 zastarané s úmyslom ich v budúcnosti odstrániť. Pack200 je schéma kompresie súborov JAR.
  • Záznamy, ktoré by poskytovali kompaktnú syntax pre deklarovanie tried, ktoré sú priehľadnými držiakmi pre plytko nemenné dáta. Záznamy uľahčujú vytváranie tried, ktoré sú v podstate dátovými nosičmi, bez toho, aby ste museli veľa písať. V návrhu sa uvádza, že by malo byť ľahké a stručné deklarovať plytko nemenné, dobre chované nominálne agregáty údajov.
  • Baliaci nástroj vo fáze vývoja inkubátora na balenie samostatných aplikácií Java. Tento nástroj by bol založený na JavaFX javapackager. Takýto nástroj bol zahrnutý do Javy, ale bol vystrihnutý z JDK 11 ako súčasť odstránenia JavaFX.
  • Vylepšite jazyk zhodou vzorov pre inštancia operátor. Toto by bola funkcia ukážky v JDK 14. Porovnávanie vzorov umožňuje výstižnejšie a bezpečnejšie vyjadrenie bežnej logiky v programe, hlavne podmienenej extrakcie komponentov z objektov. Kód môže byť stručný a typovo bezpečný.
  • Druhý náhľad textových blokov, viacriadkový reťazcový literál, ktorý eliminuje potrebu väčšiny únikových sekvencií a automaticky formátuje reťazec predvídateľným spôsobom. Textové bloky poskytnú vývojárovi kontrolu nad formátom, ak je to potrebné, zjednodušia písanie programov Java a zlepšia čitateľnosť reťazcov. Náhľad textových blokov bol zobrazený v JDK 13; iterácia JDK 14 by pridala únikové sekvencie pre správu explicitných medzier a riadenia nového riadku.
  • Ukončujeme podporu kombinácie algoritmov Parallel Scavenge a Serial Old garbage collection. Správcovia Java sa domnievajú, že táto kombinácia sa používa veľmi málo, ale vyžaduje veľa údržby.
  • Portovanie ZGC (Z Garbage Collector) do Windows. Táto funkcia sa opäť presunula do oficiálne zacieleného zoznamu po tom, čo sa vrátila späť do zoznamu navrhovaného na zacielenie.
  • Prístupové API do cudzej pamäte so zavedením API pre programy Java na bezpečný a efektívny prístup k cudzej pamäti mimo haldy Java. Toto API by malo slúžiť ako alternatíva k hlavným cestám, prostredníctvom ktorých programy Java pristupujú k pamäti, vrátane nio.ByteBuffer a slnko.misc.nebezpečný. Nové API by malo byť schopné pracovať s rôznymi druhmi pamäte vrátane natívnej, trvalej pamäte a spravovanej haldy. Nemalo by byť možné, aby API podlomilo bezpečnosť JVM. Vyradenie pamäte by malo byť v zdrojovom kóde explicitné. Očakáva sa, že API pomôže pri vývoji natívnej interoperabilnej podpory, ktorá je cieľom projektu Panama.
  • Ukončenie podpory portov Solaris / Sparc, Solaris / x64 a Linux / Sparc so zámerom ich v budúcom vydaní odstrániť. Ukončenie podpory týchto portov umožní prispievateľom OpenJDK urýchliť vývoj nových funkcií. Aj keď boli Solaris a Sparc základnými technológiami v spoločnosti Sun Microsystems, pôvodnom tvorcovi Java, v posledných rokoch ich v technologickom priestore nahradili procesory Linux a Intel.

Kde stiahnuť JDK 14

Open source JDK 14 si môžete stiahnuť zo stránky jdk.java.net pre systémy Linux, Windows a macOS. Komerčné aplikácie Oracle SE Java SE 14 na stiahnutie si môžete stiahnuť z Oracle.com.

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