Najnovija revizija Jave uvodi korisnu sintaksu za Records, između ostalih poboljšanja.
Svijet Java programiranja neprestano se razvija, zahtijevajući od vas da budete u tijeku kako biste se istaknuli u svom zanatu.
Java 21 donosi val uzbudljivih poboljšanja koja revolucioniraju način na koji pristupate konkurentnosti, operacijama prikupljanja i radu sa zapisima.
Predstavljamo virtualne niti
Skaliranje poslužiteljskih aplikacija uvijek je predstavljalo izazove, s nitima koje često postaju uska grla. Ograničen broj niti, u kombinaciji s čestim čekanjem događaja ili zaključavanja za deblokiranje, otežava ukupnu izvedbu.
U prošlosti je rješavanje ovog problema uključivalo korištenje konstrukata poput CompletableFuture ili reaktivni okviri, što je rezultiralo zamršenim kodom koji je bilo teško razumjeti i održavati.
Srećom, Java 19 je uvela virtualne niti kao značajku pregleda, koju je Java 21 doradila i učvrstila putem JDK Enhancement Proposal 444.
Virtualne niti nude vrlo obećavajuću alternativu, omogućujući vam da se učinkovitije uhvatite u koštac s izazovima skalabilnosti. To dovodi do poboljšanih performansi i poboljšanog odziva poslužiteljskih aplikacija.
Sekvencirane zbirke su korisnije
Tradicionalno, koristeći povezane popise u vašem Java programiranju je zahtijevao dosta detaljan kod. Na primjer, da biste dohvatili posljednji element, morate koristiti ovaj glomazni pristup:
var zadnji = list.get (list.size() - 1);
Međutim, Java 21 uvodi konciznu i elegantnu alternativu:
var zadnji = popis.getLast();
Slično tome, pristup prvom elementu LinkedHashSet-a zahtijeva obilazni put:
var prvi = linkedHashSet.iterator().next();
Ali s Javom 21 ovaj zadatak postaje puno jednostavniji:
var prvi = linkedHashSet.getFirst();
Također možete pristupiti posljednjem elementu LinkedHashSeta koristeći new getLast metoda koja izbjegava ponavljanje kroz cijeli skup.
Ova poboljšanja u sekvenciranim kolekcijama ne samo da poboljšavaju čitljivost koda, već i pojednostavljuju dohvaćanje elemenata, čineći Java programiranje učinkovitijim i prilagođenijim programerima.
Snimite uzorke radi praktičnosti
Uzorci zapisa, uvedeni kao značajka pregleda u Javi 19, nude prikladan mehanizam za pristup poljima zapisa u Javi bez potrebe za eksplicitnim odljevima ili metodama pristupa.
U sinergiji su sa Uparivanje uzoraka na primjer i Usklađivanje uzorka za prekidač, značajno pojednostavljujući kod i poboljšavajući ukupnu čitljivost.
Evo ilustracije ovog koncepta, s jednostavnim zapisom pod nazivom Položaj:
javnost snimiti Položaj(int x, int y){}
Ranije je izvođenje različitih radnji na temelju klase objekta zahtijevalo korištenje Uparivanje uzoraka na primjer, kao što je prikazano u sljedećem isječku koda:
javnostponištitiispisati(Objekt o){
ako (o instanceof Pozicija p) {
System.out.printf("o je pozicija: %d/%d%n", p.x(), p.y());
} drugoako (o instanceof Niz s) {
System.out.printf("o je niz: %s%n", s);
} drugo {
System.out.printf("o je nešto drugo: %s%n", o);
}
}
S Snimanje uzoraka, sada možete izravno uskladiti uzorak zapisa kao što je Pozicija (int x, int y) umjesto korištenja Položaj str uzorak. To vam omogućuje pristup varijablama x i g izravno u kodu, eliminirajući potrebu za p.x() i p.y():
javnostponištitiispisati(Objekt o){
ako (o instanceofPoložaj(int x, int y)) {
System.out.printf("o je pozicija: %d/%d%n", x, y);
} drugoako (o instanceof Niz s) {
System.out.printf("o je niz: %s%n", s);
} drugo {
System.out.printf("o je nešto drugo: %s%n", o);
}
}
Štoviše, možete koristiti Snimanje uzoraka u spoju sa Usklađivanje uzorka za prekidač, da dodatno pojednostavite svoj kod:
javnostponištitiispisati(Objekt o){
sklopka (o) {
slučajPoložaj(int x, int y) - > Sustav.out.printf("o je pozicija: %d/%d%n", x, y);
slučaj Niz s - > System.out.printf("o je niz: %s%n", s);
zadano - > System.out.printf("o je nešto drugo: %s%n", o);
}
}
Ugniježđeni uzorci zapisa omogućuju vam podudaranje na zapisima čija su polja i sama zapisi. Na primjer, razmotrite zapis pod nazivom Staza koji se sastoji od a iz i do položaj:
javnost snimiti Staza(Pozicija od, Pozicija do){}
Upotrebom uzoraka zapisa, ispisom a Staza objekt postaje sažetiji:
javnostponištitiispisati(Objekt o){
sklopka (o) {
slučajStaza(Pozicija od, Pozicija do) - > Sustav.out.printf("o je put: %d/%d -> %d/%d%n", od.x(), od.g(), do.x(), do.g());
// drugi slučajevi
}
}
Uz pomoć Snimanje uzoraka, rukovanje zapisima s poljima različitih vrsta postaje očitije i čitljivije. Pretpostavimo da ste izmijenili zapise, Položaj 2D i Položaj 3D, gdje Položajje Java sučelje koje obje implementiraju:
javnost zapečaćena sučeljePoložajdozvolePoložaj 2D, Položaj 3D{}
javnost snimiti Položaj 2D(int x, int y) provodi Poziciju {}
javnost snimiti Položaj 3D(int x, int y, int z) provodi Poziciju {}
javnost zapis putanje < P produžava poziciju > (P od, P do) {}
Kako biste razlikovali ponašanje ispisa za 2D i 3D putanje, možete koristiti uzorke snimanja:
javnostponištitiispisati(Objekt o){
sklopka (o) {
slučajStaza(Pozicija2D od, Pozicija2D do) - > Sustav.out.printf("o je 2D put: %d/%d -> %d/%d%n", od.x(), od.g(), do.x(), do.g());
slučajStaza(Pozicija3D od, Pozicija3D do) - > Sustav.out.printf("o je 3D staza: %d/%d/%d -> %d/%d/%d%n", od.x(), od.g(), od.z(), do.x(), do.g(), do.z());
// drugi slučajevi
}
}
Obrasci zapisa značajno smanjuju opširnost i poboljšavaju čitljivost koda kada se radi sa zapisima koji sadrže polja različitih tipova.
Otključajte nove mogućnosti s Javom 21
Java 21 predstavlja mnoštvo snažnih značajki koje povećavaju mogućnosti programskog jezika Java. Prihvaćanjem ovih poboljšanja možete pojednostaviti svoje razvojne procese i otključati nove mogućnosti za svoje aplikacije.
Održavanje najnovijih jezičnih značajki i Java okvira omogućuje vam održavanje učinkovitog koda koji se može održavati, osiguravajući da ostanete na čelu Java programiranja.