Java SE 19 -julkaisu

Kuuden kuukauden kehitystyön jälkeen Oracle julkaisi Java SE 19:n (Java Platform, Standard Edition 19), joka käyttää OpenJDK avoimen lähdekoodin projektia referenssitoteutuksena. Joidenkin vanhentuneiden ominaisuuksien poistamista lukuun ottamatta Java SE 19 säilyttää taaksepäin yhteensopivuuden Java-alustan aikaisempien julkaisujen kanssa - useimmat aiemmin kirjoitetut Java-projektit toimivat ilman muutoksia, kun ne suoritetaan uudessa versiossa. Java SE 19:n (JDK, JRE ja Server JRE) asennusvalmiit koontiversiot on valmistettu Linuxille (x86_64, AArch64), Windowsille (x86_64) ja macOS:lle (x86_64, AArch64). OpenJDK-projektin kehittämä Java 19 -viitetoteutus on täysin avoimen lähdekoodin GPLv2-lisenssin alainen GNU ClassPath -poikkeuksilla, jotka mahdollistavat dynaamisen linkityksen kaupallisiin tuotteisiin.

Java SE 19 on luokiteltu yleiseksi tukijulkaisuksi, ja se saa päivityksiä seuraavaan julkaisuun saakka. Long Term Support (LTS) -haara pitäisi olla Java SE 17, joka saa päivityksiä vuoteen 2029 asti. Muistutetaan, että Java 10:n julkaisusta lähtien projekti siirtyi uuteen kehitysprosessiin, mikä merkitsi lyhyempää sykliä uusien julkaisujen muodostukselle. Uusi toiminnallisuus on nyt kehitetty yhteen jatkuvasti päivitettävään päähaaraan, joka sisältää valmiita muutoksia ja josta haarat haarautuvat puolen vuoden välein uusien julkaisujen vakauttamiseksi.

Java 19:n uusia ominaisuuksia ovat:

  • Tietuemallien alustavaa tukea on ehdotettu laajentamalla Java 16:ssa käyttöön otettua kuvioiden täsmäysominaisuutta työkaluilla tietueluokkien arvojen jäsentämiseen. Esimerkiksi: tietue Piste(int x, int y) {} void printSum(Object o) { if (o esiintymä piste(int x, int y)) { System.out.println(x+y); } }
  • Linux-versiot tukevat RISC-V-arkkitehtuuria.
  • Lisätty alustava tuki FFM (Foreign Function & Memory) API:lle, jonka avulla voit järjestää Java-ohjelmien vuorovaikutuksen ulkoisen koodin ja datan kanssa kutsumalla toimintoja ulkoisista kirjastoista ja käyttämällä JVM:n ulkopuolista muistia.
  • Lisätty tuki virtuaalisille säikeille, jotka ovat kevyitä säikeitä, jotka yksinkertaistavat huomattavasti korkean suorituskyvyn monisäikeisten sovellusten kirjoittamista ja ylläpitoa.
  • Vector API:lle on ehdotettu neljättä esikatselua, joka tarjoaa toimintoja vektorilaskelmille, jotka suoritetaan vektorikäskyjen avulla x86_64- ja AArch64-prosessoreissa ja jotka mahdollistavat toimintojen soveltamisen samanaikaisesti useisiin arvoihin (SIMD). Toisin kuin HotSpot JIT -kääntäjän tarjoamat ominaisuudet skalaarioperaatioiden automaattiseen vektorointiin, uusi API mahdollistaa vektorisoinnin eksplisiittisen ohjauksen rinnakkaista tietojenkäsittelyä varten.
  • Kolmas kokeellinen toteutus mallin sovittamisesta "kytkin"-lausekkeissa on lisätty, mikä mahdollistaa "case"-tunnisteiden käytön ei tarkkoja arvoja, vaan joustavia kuvioita, jotka kattavat useita arvoja kerralla, joita varten aiemmin oli tarpeen käytä hankalia "jos...else"-lausekkeiden ketjuja. Kohde o = 123L; Merkkijono muotoiltu = kytkin (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("pitkä %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); oletus -> o.toString(); };
  • Lisätty kokeellinen API rakenteelliseen rinnakkaisuuteen, joka yksinkertaistaa monisäikeisten sovellusten kehittämistä käsittelemällä useita eri säikeissä suoritettuja tehtäviä yhtenä lohkona.

Lähde: opennet.ru

Lisää kommentti