Najnovšia revízia Java zavádza okrem iných vylepšení aj užitočnú syntax pre Records.

Svet programovania v jazyku Java sa neustále vyvíja a vyžaduje, aby ste zostali v obraze, aby ste vynikli vo svojom remesle.

Java 21 prináša vlnu úžasných vylepšení, ktoré revolučne menia spôsob, akým pristupujete k súbežnosti, zhromažďovaniu a práci so záznamami.

Predstavujeme virtuálne vlákna

Škálovanie serverových aplikácií vždy predstavovalo výzvy, pričom vlákna sa často stávali prekážkami. Obmedzený počet vlákien v kombinácii s častým čakaním na udalosti alebo zámky na odblokovanie bráni celkovému výkonu.

V minulosti riešenie tohto problému zahŕňalo použitie konštruktov ako CompletableFuture alebo reaktívne rámce, čo malo za následok spletitý kód, ktorý bolo ťažké pochopiť a udržiavať.

Našťastie Java 19 zaviedla virtuálne vlákna ako funkciu ukážky, ktorú Java 21 vylepšila a upevnila prostredníctvom návrhu vylepšenia JDK 444.

Virtuálne vlákna ponúkajú veľmi sľubnú alternatívu, ktorá vám umožňuje efektívnejšie riešiť problémy so škálovateľnosťou. To vedie k zlepšenému výkonu a zlepšenej odozve serverových aplikácií.

instagram viewer

Sekvenované kolekcie sú použiteľnejšie

tradične pomocou prepojených zoznamov vo vašom programovaní v jazyku Java vyžaduje dosť podrobný kód. Napríklad, ak chcete získať posledný prvok, musíte použiť tento ťažkopádny prístup:

var last = list.get (list.size() - 1);

Java 21 však predstavuje stručnú a elegantnú alternatívu:

var posledný = zoznam.getLast();

Podobne prístup k prvému prvku LinkedHashSet vyžaduje kruhovú trasu:

var first = linkedHashSet.iterator().next();

Ale s Java 21 je táto úloha oveľa jednoduchšia:

var first = linkedHashSet.getFirst();

Môžete tiež pristupovať k poslednému prvku LinkedHashSet pomocou nového getLast metóda, ktorá sa vyhýba iterácii cez celú množinu.

Tieto vylepšenia v sekvenovaných kolekciách nielen zlepšujú čitateľnosť kódu, ale aj zefektívňujú získavanie prvkov, vďaka čomu je programovanie v jazyku Java efektívnejšie a prívetivejšie pre vývojárov.

Zaznamenajte vzory pre pohodlie

Vzory záznamov, predstavené ako funkcia náhľadu v jazyku Java 19, ponúkajú pohodlný mechanizmus na prístup k poliam záznamu v jazyku Java bez potreby explicitných pretypov alebo metód prístupu.

Synergizujú s Pattern Matching for instanceof a Zhoda vzoru pre prepínač, čo výrazne zjednodušuje kód a zlepšuje celkovú čitateľnosť.

Tu je ilustrácia tohto konceptu s jednoduchým názvom pozícia:

verejnosti záznam pozícia(int X, int y){}

Predtým sa vyžadovalo použitie rôznych akcií na základe triedy objektu Pattern Matching for instanceof, ako je uvedené v nasledujúcom útržku kódu:

verejnostineplatnévytlačiť(Objekt o){
ak (o instanceof Pozícia p) {
System.out.printf("o je pozícia: %d/%d%n", p.x(), p.y());
} inakak (o instanceof Reťazec s) {
System.out.printf("o je reťazec: %s%n", s);
} inak {
System.out.printf("o je niečo iné: %s%n", o);
}
}

s Záznamové vzory, teraz môžete priamo spárovať vzor záznamu, ako napr Pozícia (int x, int y) namiesto použitia Pozícia p vzor. To vám umožní prístup k premenným X a r priamo v kóde, čím sa eliminuje potreba p.x() a p.y():

verejnostineplatnévytlačiť(Objekt o){
ak (o instanceofpozícia(int X, int y)) {
System.out.printf("o je pozícia: %d/%d%n", x, y);
} inakak (o instanceof Reťazec s) {
System.out.printf("o je reťazec: %s%n", s);
} inak {
System.out.printf("o je niečo iné: %s%n", o);
}
}

Okrem toho môžete použiť Záznamové vzory v spojení s Zhoda vzoru pre prepínač, na ďalšie zjednodušenie kódu:

verejnostineplatnévytlačiť(Objekt o){
prepínač (o) {
prípadpozícia(int X, int y) - > System.out.printf("o je pozícia: %d/%d%n", x, y);
prípad String s - > System.out.printf("o je reťazec: %s%n", s);
predvolená - > System.out.printf("o je niečo iné: %s%n", o);
}
}

Vnorené vzory záznamov vám umožňujú porovnávať záznamy, ktorých polia sú samotné záznamy. Zvážte napríklad záznam s názvom Cesta ktorý zahŕňa a od a do pozícia:

verejnosti záznam Cesta(Pozícia od, Pozícia do){}

Použitím záznamových vzorov tlač a Cesta objekt sa stáva stručnejším:

verejnostineplatnévytlačiť(Objekt o){
prepínač (o) {
prípadCesta(Pozícia od, Pozícia do) - > System.out.printf("o je cesta: %d/%d -> %d/%d%n", from.x(), od.r(), do.X(), do.r());
// iné prípady
}
}

S pomocou Záznamové vzory, manipulácia so záznamami s poľami rôznych typov sa stáva zreteľnejšou a čitateľnejšou. Predpokladajme, že ste upravili záznamy, Poloha 2D a Poloha 3D, kde pozíciaje rozhranie Java ktoré obe implementujú:

verejnosti zapečatené rozhraniepozíciapovoleniaPoloha 2D, Poloha 3D{}
verejnosti záznam Poloha 2D(int X, int y) implementuje Pozícia {}
verejnosti záznam Poloha 3D(int X, int y, int z) implementuje Pozícia {}
verejnosti cesta záznamu < P rozširuje pozíciu > (P od, P po) {}

Na odlíšenie správania tlače pre 2D a 3D cesty môžete použiť vzory záznamov:

verejnostineplatnévytlačiť(Objekt o){
prepínač (o) {
prípadCesta(Pozícia2D od, Pozícia2D do) - > System.out.printf("o je 2D cesta: %d/%d -> %d/%d%n", from.x(), od.r(), do.X(), do.r());
prípadCesta(Pozícia 3D od, Poloha 3D do) - > System.out.printf("o je 3D cesta: %d/%d/%d -> %d/%d/%d%n", from.x(), od.r(), od.z(), do.X(), do.r(), do.z());
// iné prípady
}
}

Vzory záznamov výrazne znižujú výrečnosť a zlepšujú čitateľnosť kódu pri práci so záznamami obsahujúcimi polia rôznych typov.

Odomknite nové možnosti s Java 21

Java 21 predstavuje množstvo výkonných funkcií, ktoré rozširujú možnosti programovacieho jazyka Java. Prijatím týchto vylepšení môžete zefektívniť vývojové procesy a odomknúť nové možnosti pre vaše aplikácie.

Aktualizácia najnovších jazykových funkcií a frameworkov Java vám umožňuje udržiavať efektívny a udržiavateľný kód, čo vám zaistí, že zostanete na čele programovania Java.