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.

instagram viewer

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.