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í.
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.