Najnovejša revizija Jave med drugimi izboljšavami uvaja nekaj uporabne sintakse za zapise.

Svet programiranja v Javi se nenehno razvija, zato morate biti na tekočem, če želite blesteti v svojem poslu.

Java 21 prinaša val vznemirljivih izboljšav, ki spremenijo vaš pristop k sočasnosti, zbiranju in delu z zapisi.

Predstavljamo navidezne niti

Skaliranje strežniških aplikacij je vedno predstavljalo izzive, saj niti pogosto postanejo ozka grla. Omejeno število niti v kombinaciji s pogostim čakanjem na dogodke ali zaklepanja za odblokiranje ovira splošno delovanje.

V preteklosti je reševanje te težave vključevalo uporabo konstruktov, kot je CompletableFuture oz reaktivni okvirji, kar je povzročilo zapleteno kodo, ki jo je bilo težko razumeti in vzdrževati.

Na srečo je Java 19 uvedla virtualne niti kot funkcijo predogleda, ki jo je Java 21 izboljšala in utrdila s predlogom za izboljšavo JDK 444.

Virtualne niti ponujajo zelo obetavno alternativo, ki vam omogoča učinkovitejše reševanje izzivov razširljivosti. To vodi do izboljšane zmogljivosti in izboljšane odzivnosti strežniških aplikacij.

instagram viewer

Zaporedne zbirke so bolj uporabne

Tradicionalno, uporabo povezanih seznamov v vašem programiranju Java zahteva precej podrobno kodo. Če želite na primer pridobiti zadnji element, morate uporabiti ta okoren pristop:

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

Vendar pa Java 21 uvaja jedrnato in elegantno alternativo:

var zadnji = list.getLast();

Podobno je za dostop do prvega elementa LinkedHashSet potrebna krožna pot:

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

Toda z Javo 21 postane ta naloga veliko enostavnejša:

var prvi = linkedHashSet.getFirst();

Do zadnjega elementa LinkedHashSet lahko dostopate tudi z uporabo new getLast metoda, ki se izogne ​​ponavljanju skozi celoten niz.

Te izboljšave v zaporednih zbirkah ne samo izboljšajo berljivost kode, temveč tudi poenostavijo pridobivanje elementov, zaradi česar je programiranje v Javi učinkovitejše in razvijalcu prijaznejše.

Snemajte vzorce za udobje

Vzorci zapisov, uvedeni kot funkcija predogleda v Javi 19, ponujajo priročen mehanizem za dostop do polj zapisa v Javi brez potrebe po eksplicitnih pretvorbah ali metodah dostopa.

Sinergirajo z Ujemanje vzorcev na primer in Ujemanje vzorcev za stikalo, kar znatno poenostavi kodo in izboljša splošno berljivost.

Tukaj je ilustracija tega koncepta s preprostim zapisom z imenom Položaj:

javnosti zapis Položaj(int x, int y){}

Prej je bilo treba izvajati različna dejanja glede na razred predmeta Ujemanje vzorcev na primer, kot je ponazorjeno v naslednjem delčku kode:

javnostiprazninatiskanje(Predmet o){
če (o instanceof Položaj p) {
System.out.printf("o je položaj: %d/%d%n", p.x(), p.y());
} drugačeče (o instanceof Niz s) {
System.out.printf("o je niz: %s%n", s);
} drugače {
System.out.printf("o je nekaj drugega: %s%n", o);
}
}

z Snemanje vzorcev, lahko zdaj neposredno ujemate vzorec zapisa, kot je Položaj (int x, int y) namesto uporabe Položaj str vzorec. To vam omogoča dostop do spremenljivk x in l neposredno v kodi, kar odpravlja potrebo po p.x() in p.y():

javnostiprazninatiskanje(Predmet o){
če (o instanceofPoložaj(int x, int y)) {
System.out.printf("o je položaj: %d/%d%n", x, y);
} drugačeče (o instanceof Niz s) {
System.out.printf("o je niz: %s%n", s);
} drugače {
System.out.printf("o je nekaj drugega: %s%n", o);
}
}

Poleg tega lahko uporabite Snemanje vzorcev v povezavi z Ujemanje vzorcev za stikalo, da dodatno poenostavite kodo:

javnostiprazninatiskanje(Predmet o){
stikalo (o) {
OvitekPoložaj(int x, int y) - > System.out.printf("o je položaj: %d/%d%n", x, y);
Ovitek Niz s - > System.out.printf("o je niz: %s%n", s);
privzeto - > System.out.printf("o je nekaj drugega: %s%n", o);
}
}

Vzorci ugnezdenih zapisov omogočajo ujemanje na zapisih, katerih polja so sama zapisi. Na primer, upoštevajte zapis z imenom Pot ki obsega a od in do položaj:

javnosti zapis Pot(Položaj od, Položaj do){}

Z uporabo zapisovalnih vzorcev tiskanje a Pot objekt postane bolj jedrnat:

javnostiprazninatiskanje(Predmet o){
stikalo (o) {
OvitekPot(Položaj od, Položaj do) - > System.out.printf("o je pot: %d/%d -> %d/%d%n", od.x(), od.l(), do.x(), do.l());
// drugi primeri
}
}

S pomočjo Snemanje vzorcev, postane obravnava zapisov s polji različnih vrst bolj očitna in berljiva. Recimo, da ste spremenili zapise, Položaj 2D in Položaj 3D, kje Položajje vmesnik Java ki oba izvajata:

javnosti zapečateno vmesnikPoložajdovoljenjaPoložaj 2D, Položaj 3D{}
javnosti zapis Položaj 2D(int x, int y) izvaja Položaj {}
javnosti zapis Položaj 3D(int x, int y, int z) izvaja Položaj {}
javnosti zapis poti < P razširja položaj > (P od, P do) {}

Če želite razlikovati med vedenjem tiskanja za 2D in 3D poti, lahko uporabite vzorce zapisov:

javnostiprazninatiskanje(Predmet o){
stikalo (o) {
OvitekPot(Pozicija2D od, Položaj2D do) - > System.out.printf("o je 2D pot: %d/%d -> %d/%d%n", od.x(), od.l(), do.x(), do.l());
OvitekPot(Position3D od, Position3D do) - > System.out.printf("o je 3D pot: %d/%d/%d -> %d/%d/%d%n", od.x(), od.l(), od.z(), do.x(), do.l(), do.z());
// drugi primeri
}
}

Vzorci zapisov znatno zmanjšajo podrobnost in izboljšajo berljivost kode pri delu z zapisi, ki vsebujejo polja različnih vrst.

Odklenite nove možnosti z Javo 21

Java 21 uvaja množico zmogljivih funkcij, ki povečujejo zmogljivosti programskega jezika Java. Če sprejmete te izboljšave, lahko poenostavite svoje razvojne procese in odklenete nove možnosti za svoje aplikacije.

Če ste na tekočem z najnovejšimi jezikovnimi funkcijami in ogrodji Java, lahko vzdržujete učinkovito kodo, ki jo je mogoče vzdrževati, kar vam zagotavlja, da ostanete na čelu programiranja Java.