Javan uusin versio sisältää hyödyllisiä syntaksia Recordsille muiden parannusten ohella.
Java-ohjelmoinnin maailma kehittyy jatkuvasti, mikä edellyttää, että pysyt ajan tasalla, jotta voit loistaa taitosi.
Java 21 tuo joukon jännittäviä parannuksia, jotka mullistavat tavan lähestyä samanaikaisuutta, keräilytoimintoja ja työskentelyä tietueiden kanssa.
Esittelyssä virtuaaliketjut
Palvelinsovellusten skaalaus on aina tuonut haasteita, ja säikeistä on usein muodostunut pullonkauloja. Rajoitettu määrä säikeitä yhdistettynä toistuvaan tapahtumien odottamiseen tai lukitusten avaamiseen haittaa yleistä suorituskykyä.
Aiemmin tämän ongelman ratkaiseminen sisälsi sellaisten konstruktien käyttämisen, kuten Täydellinen tulevaisuus tai reaktiiviset puitteet, mikä johti mutkaiseen koodiin, jota oli vaikea ymmärtää ja ylläpitää.
Onneksi Java 19 esitteli virtuaaliset säikeet esikatseluominaisuudena, jota Java 21 on tarkentanut ja vahvistanut JDK Enhancement Proposal 444:n avulla.
Virtuaalisäikeet tarjoavat erittäin lupaavan vaihtoehdon, jonka avulla voit käsitellä skaalautuvuushaasteita tehokkaammin. Tämä parantaa palvelinsovellusten suorituskykyä ja reagointikykyä.
Sekvensoidut kokoelmat ovat käyttökelpoisempia
Perinteisesti, käyttämällä linkitettyjä luetteloita Java-ohjelmoinnissasi on vaatinut melko monisanaista koodia. Esimerkiksi viimeisen elementin hakemiseksi sinun on käytettävä tätä hankalaa lähestymistapaa:
var viimeinen = list.get (list.size() - 1);
Java 21 esittelee kuitenkin tiiviin ja tyylikkään vaihtoehdon:
var viimeinen = list.getLast();
Samoin LinkedHashSetin ensimmäisen elementin käyttäminen vaatii kiertoliittymän:
var ensimmäinen = linkedHashSet.iterator().seuraava();
Mutta Java 21:llä tämä tehtävä on paljon yksinkertaisempi:
var ensimmäinen = linkedHashSet.getFirst();
Voit myös käyttää LinkedHashSetin viimeistä elementtiä käyttämällä uutta getLast menetelmä, joka välttää iteroinnin koko joukon läpi.
Nämä sekvensoitujen kokoelmien parannukset eivät vain paranna koodin luettavuutta, vaan myös virtaviivaistavat elementtien hakua, mikä tekee Java-ohjelmoinnista tehokkaampaa ja kehittäjäystävällisempää.
Tallenna kuvioita käyttömukavuuden vuoksi
Record Patterns, jotka esiteltiin Java 19:n esikatseluominaisuudena, tarjoavat kätevän mekanismin tietueen kenttien käyttämiseen Javassa ilman erityisiä heittoja tai käyttötapoja.
Ne synergisoivat kanssa Mallin sovitus esimerkkiin ja Kuvion sovitus kytkimelle, mikä yksinkertaistaa huomattavasti koodia ja parantaa yleistä luettavuutta.
Tässä on esimerkki tästä konseptista, jossa on yksinkertainen tietue nimeltä asema:
julkinen ennätys asema(int x, int y){}
Aiemmin erilaisten toimien suorittaminen objektin luokkaan perustuen edellytti käyttöä Mallin sovitus esimerkkiin, kuten seuraava koodinpätkä osoittaa:
julkinenmitätönTulosta(Objekti o){
jos (o esiintymä Sijainti p) {
System.out.printf("o on sijainti: %d/%d%n", p.x(), p.y());
} muujos (o esiintymä merkkijono s) {
System.out.printf("o on merkkijono: %s%n", s);
} muu {
System.out.printf("o on jotain muuta: %s%n", o);
}
}
Kanssa Tallenna kuvioita, voit nyt yhdistää suoraan tietuemallin, kuten Sijainti (int x, int y) käyttämisen sijaan Asema s kuvio. Näin pääset käsiksi muuttujiin x ja y suoraan koodissa, mikä eliminoi tarpeen p.x() ja p.y():
julkinenmitätönTulosta(Objekti o){
jos (o esiintymäasema(int x, int y)) {
System.out.printf("o on sijainti: %d/%d%n", x, y);
} muujos (o esiintymä merkkijono s) {
System.out.printf("o on merkkijono: %s%n", s);
} muu {
System.out.printf("o on jotain muuta: %s%n", o);
}
}
Lisäksi voit käyttää Tallenna kuvioita kanssa Kuvion sovitus kytkimelle, yksinkertaistaaksesi koodiasi entisestään:
julkinenmitätönTulosta(Objekti o){
vaihtaa (o) {
tapausasema(int x, int y) -> System.out.printf("o on sijainti: %d/%d%n", x, y);
tapaus Merkkijono s -> System.out.printf("o on merkkijono: %s%n", s);
oletuksena -> System.out.printf("o on jotain muuta: %s%n", o);
}
}
Sisäkkäiset tietuemallit voit yhdistää tietueita, joiden kentät ovat itse tietueita. Harkitse esimerkiksi tietuetta nimeltä Polku joka sisältää a alkaen ja to asema:
julkinen ennätys Polku(Sijainti alkaen, sijainti kohteeseen){}
Käyttämällä levykuvioita tulostamalla a Polku objektista tulee tiiviimpi:
julkinenmitätönTulosta(Objekti o){
vaihtaa (o) {
tapausPolku(Sijainti alkaen, sijainti kohteeseen) -> System.out.printf("o on polku: %d/%d -> %d/%d%n", alkaen.x(), alkaen.y(), kohteeseen.x(), kohteeseen.y());
// muut tapaukset
}
}
Avulla Tallenna kuvioita, erityyppisiä kenttiä sisältävien tietueiden käsittelystä tulee selvempää ja luettavampaa. Oletetaan, että olet muokannut tietueita, Sijainti2D ja Sijainti3D, missä asemaon Java-käyttöliittymä jotka molemmat toteuttavat:
julkinen sinetöity käyttöliittymäasemaluvatSijainti2D, Sijainti3D{}
julkinen ennätys Sijainti2D(int x, int y) toteuttaa kantaa {}
julkinen ennätys Sijainti3D(int x, int y, int z) toteuttaa kantaa {}
julkinen tallentaa Polku < P ulottuu sijaintiin > (P alkaen, P paikkaan) {}
Voit erottaa 2D- ja 3D-polkujen tulostuskäyttäytymisen käyttämällä tallennuskuvioita:
julkinenmitätönTulosta(Objekti o){
vaihtaa (o) {
tapausPolku(Position2D alkaen, Position2D to) -> System.out.printf("o on 2D-polku: %d/%d -> %d/%d%n", alkaen.x(), alkaen.y(), kohteeseen.x(), kohteeseen.y());
tapausPolku(Position3D alkaen, Position3D to) -> System.out.printf("o on 3D-polku: %d/%d/%d -> %d/%d/%d%n", alkaen.x(), alkaen.y(), alkaen.z(), kohteeseen.x(), kohteeseen.y(), kohteeseen.z());
// muut tapaukset
}
}
Tietuemallit vähentävät huomattavasti monisanaisuutta ja parantavat koodin luettavuutta käsiteltäessä tietueita, jotka sisältävät erityyppisiä kenttiä.
Avaa uusia mahdollisuuksia Java 21:n avulla
Java 21 esittelee joukon tehokkaita ominaisuuksia, jotka lisäävät Java-ohjelmointikielen ominaisuuksia. Hyväksymällä nämä parannukset voit virtaviivaistaa kehitysprosessejasi ja avata uusia mahdollisuuksia sovelluksillesi.
Pysyminen ajan tasalla uusimpien kieliominaisuuksien ja Java-kehysten kanssa antaa sinulle mahdollisuuden ylläpitää tehokasta ja ylläpidettävää koodia, mikä varmistaa, että pysyt Java-ohjelmoinnin kärjessä.