Naujausioje „Java“ versijoje, be kitų patobulinimų, pristatoma naudinga įrašų sintaksė.
„Java“ programavimo pasaulis nuolat tobulėja, todėl jums reikia būti naujausiais, kad galėtumėte tobulėti savo amato srityje.
„Java 21“ atneša daugybę įdomių patobulinimų, kurie iš esmės keičia lygiagretumo, rinkimo operacijų ir darbo su įrašais metodą.
Pristatome virtualias gijas
Serverio taikomųjų programų mastelio keitimas visada kėlė iššūkių, o gijos dažnai tampa kliūtimis. Ribotas gijų skaičius kartu su dažnu įvykių laukimu arba blokavimo atblokavimu trukdo bendram veikimui.
Anksčiau sprendžiant šią problemą reikėjo naudoti tokias konstrukcijas kaip CompletableFuture arba reaktyvūs karkasai, todėl susidarė sudėtingas kodas, kurį buvo sunku suprasti ir prižiūrėti.
Laimei, „Java 19“ pristatė virtualias gijas kaip peržiūros funkciją, kurią „Java 21“ patobulino ir sutvirtino naudodama JDK Enhancement Proposal 444.
Virtualios gijos yra labai perspektyvi alternatyva, leidžianti efektyviau spręsti mastelio keitimo problemas. Tai pagerina serverio programų našumą ir didesnį reagavimą.
Sekvencinės kolekcijos yra naudingesnės
Tradiciškai, naudodami susietus sąrašus savo „Java“ programavimuose reikalingas gana išsamus kodas. Pavyzdžiui, norėdami gauti paskutinį elementą, turite naudoti šį sudėtingą metodą:
var paskutinis = list.get (list.size() - 1);
Tačiau „Java 21“ pristato glaustą ir elegantišką alternatyvą:
var paskutinis = list.getLast();
Panašiai, norint pasiekti pirmąjį LinkedHashSet elementą, reikalingas žiedinis maršrutas:
var pirmas = linkedHashSet.iterator().next();
Tačiau naudojant „Java 21“ ši užduotis tampa daug paprastesnė:
var pirmas = linkedHashSet.getFirst();
Taip pat galite pasiekti paskutinį LinkedHashSet elementą naudodami naują getLast metodas, leidžiantis išvengti kartojimo per visą rinkinį.
Šie sekvenuotų kolekcijų patobulinimai ne tik pagerina kodo skaitomumą, bet ir supaprastina elementų gavimą, todėl Java programavimas tampa efektyvesnis ir patogesnis kūrėjams.
Patogumui įrašykite šablonus
Įrašų šablonai, pristatyti kaip „Java 19“ peržiūros funkcija, siūlo patogų mechanizmą, leidžiantį pasiekti „Java“ įrašo laukus, nereikalaujant aiškių perdavimo ar prieigos metodų.
Jie sinergizuoja su Pattern Matching for exampleof ir Jungiklio modelio atitikimas, žymiai supaprastinant kodą ir pagerinant bendrą skaitomumą.
Štai šios koncepcijos iliustracija su paprastu įrašu, pavadintu Padėtis:
viešas rekordas Padėtis(tarpt x, tarpt y){}
Anksčiau, norint atlikti įvairius veiksmus pagal objekto klasę, reikėjo naudoti Pattern Matching for exampleof, kaip parodyta šiame kodo fragmente:
viešastuštumaspausdinti(O objektas){
jeigu (o pavyzdys Padėtis p) {
System.out.printf("o yra padėtis: %d/%d%n", p.x(), p.y());
} Kitasjeigu (o pavyzdys Eilutė s) {
System.out.printf("o yra eilutė: %s%n", s);
} Kitas {
System.out.printf("o yra kažkas kita: %s%n", o);
}
}
Su Įrašyti modelius, dabar galite tiesiogiai suderinti įrašo šabloną, pvz., Padėtis (int x, int y) užuot naudoję Pozicija p modelis. Tai leidžia pasiekti kintamuosius x ir y tiesiogiai kode, todėl nereikia p.x() ir p.y():
viešastuštumaspausdinti(O objektas){
jeigu (o pavyzdysPadėtis(tarpt x, tarpt y)) {
System.out.printf("o yra padėtis: %d/%d%n", x, y);
} Kitasjeigu (o pavyzdys Eilutė s) {
System.out.printf("o yra eilutė: %s%n", s);
} Kitas {
System.out.printf("o yra kažkas kita: %s%n", o);
}
}
Be to, galite naudoti Įrašyti modelius kartu su Jungiklio modelio atitikimas, norėdami dar labiau supaprastinti kodą:
viešastuštumaspausdinti(O objektas){
jungiklis (o) {
atvejuPadėtis(tarpt x, tarpt y) - > System.out.printf("o yra padėtis: %d/%d%n", x, y);
atveju String s -> System.out.printf("o yra eilutė: %s%n", s);
numatytas - > System.out.printf("o yra kažkas kita: %s%n", o);
}
}
Įdėtos įrašų šablonai leidžia suderinti įrašus, kurių laukai patys yra įrašai. Pavyzdžiui, apsvarstykite įrašą pavadinimu Kelias kuri apima a iš ir į pozicija:
viešas rekordas Kelias(Pozicija nuo, padėtis iki){}
Naudojant įrašų šablonus, spausdinant a Kelias objektas tampa glaustesnis:
viešastuštumaspausdinti(O objektas){
jungiklis (o) {
atvejuKelias(Pozicija nuo, padėtis iki) - > System.out.printf("o yra kelias: %d/%d -> %d/%d%n", nuo.x(), nuo.y(), į.x(), į.y());
// kiti atvejai
}
}
Su pagalba Įrašyti modelius, tvarkyti įrašus su skirtingų tipų laukais tampa aiškesnis ir įskaitomas. Tarkime, kad pakeitėte įrašus, Pozicija2D ir Pozicija3D, kur Padėtisyra „Java“ sąsaja kurie abu įgyvendina:
viešas užantspauduotas sąsajaPadėtisleidimaiPozicija2D, Pozicija3D{}
viešas rekordas Pozicija2D(tarpt x, tarpt y) įgyvendina Padėtį {}
viešas rekordas Pozicija3D(tarpt x, tarpt y, tarpt z) įgyvendina Padėtį {}
viešas įrašyti Kelią < P tęsia padėtį > (P nuo, P iki) {}
Norėdami atskirti 2D ir 3D kelių spausdinimo elgesį, galite naudoti įrašų šablonus:
viešastuštumaspausdinti(O objektas){
jungiklis (o) {
atvejuKelias(2D padėtis nuo, 2D padėtis į) - > System.out.printf("o yra 2D kelias: %d/%d -> %d/%d%n", nuo.x(), nuo.y(), į.x(), į.y());
atvejuKelias(Position3D nuo, Position3D į) - > System.out.printf("o yra 3D kelias: %d/%d/%d -> %d/%d/%d%n", nuo.x(), nuo.y(), nuo.z(), į.x(), į.y(), į.z());
// kiti atvejai
}
}
Įrašų šablonai žymiai sumažina žodiškumą ir pagerina kodo skaitomumą dirbant su įrašais, kuriuose yra įvairių tipų laukų.
Atraskite naujas galimybes su Java 21
Java 21 pristato daugybę galingų funkcijų, kurios papildo Java programavimo kalbos galimybes. Taikydami šiuos patobulinimus galite supaprastinti savo kūrimo procesus ir atverti naujas galimybes savo programoms.
Būdami atnaujinami su naujausiomis kalbos funkcijomis ir „Java“ sistemomis, galėsite išlaikyti efektyvų ir prižiūrimą kodą, užtikrinant, kad išliktumėte Java programavimo avangarde.