Kuuden kuukauden kehityksen jälkeen Oracle julkaisi julkaisun uuden version JavaSE 18 (Standard Edition), joka käyttää OpenJDK avoimen lähdekoodin projektia referenssitoteutuksena.
Tässä uudessa Java SE 18 -versiossa tulee lukuun ottamatta joidenkin vanhentuneiden ominaisuuksien poistaminen säilyttää yhteensopivuuden Java-alustan vanhemmilla versioilla, ja useimmat aiemmin kirjoitetut Java-projektit toimivat ennallaan, kun niitä ajetaan uuden version kanssa.
Java SE 18: n tärkeimmät uudet ominaisuudet
Tässä uudessa Java SE 18 -julkaisussa oletuskoodaus on UTF-8. Java-sovellusliittymät, jotka käsittelevät merkkikoodattua tekstidataa käyttää nyt UTF-8:aa oletuksena kaikilla alustoilla, riippumatta järjestelmäasetuksista ja alueellisista asetuksista. Voit palauttaa vanhan käytöksen, jossa koodaus valitaan järjestelmän kieli- ja aluekohtaisesti, käyttämällä parametria "-Dfile.encoding=COMPAT".
Toinen erottuvista muutoksista on hän suunnitteli java.lang.reflect API-toteutuksen uudelleen (Core Reflection), jonka tarkoituksena on hankkia tietoa luokkien menetelmistä, kentistä ja rakentajista sekä pääsy luokkien sisäiseen rakenteeseen. api java.lang.reflect itse ei ole muuttunut, mutta se on nyt toteutettu käyttämällä tunnisteita moduulin tarjoamista menetelmistä java.lang.invoke tavukoodigeneraattoreiden käyttämisen sijaan. Muutos mahdollisti yhtenäistämisen ja helpottaa toteutusten ylläpitoa java.lang.reflect ja java.lang.invoke.
Tämän lisäksi mainitaan myös se ehdotetaan Vector API:n kolmatta alustavaa toteutusta, joka tarjoaa toimintoja vektorilaskelmille, jotka suoritetaan x86_64- ja AArch64-prosessorien vektorikäskyjen avulla ja jotka mahdollistavat samanaikaiset toiminnot useille arvoille (SIMD). Toisin kuin HotSpot JIT -kääntäjän tarjoamat ominaisuudet skalaaritoimintojen automaattiseen vektorointiin, uusi API Voit ohjata vektorointia suoraan rinnakkaista tietojenkäsittelyä varten.
Se on myös korostettu lisäsi SPI-liittymän (palveluntarjoajan käyttöliittymä) ratkaista isäntänimiä ja IP-osoitteita, jonka avulla voit käyttää java.net.InetAddressissa vaihtoehtoisia ratkaisijoita, joita ei ole sidottu käyttöjärjestelmän tarjoamiin ohjaimiin.
Toisaalta sitä on ehdotettu toinen Foreign Function & Memory API:n alustava toteutus, jonka avulla sovellukset voivat olla vuorovaikutuksessa koodin ja tiedon kanssa Java-ajonajan ulkopuolella. Uusi API mahdollistaa muiden kuin JVM-toimintojen tehokkaan kutsumisen y käyttää muistia jota JVM ei hallinnoi. Voit esimerkiksi kutsua toimintoja ulkoisista jaetuista kirjastoista ja käyttää prosessitietoja ilman JNI:tä.
Lisätty a toinen kokeellinen kuviosovituksen toteutus ilmaisuissa vaihtaa, jonka avulla voit käyttää joustavia malleja tarkkojen arvojen sijasta "case"-tunnisteissa, jotka kattavat useita arvoja kerralla, mikä edellytti hankalia "if...else"-lausekkeiden merkkijonoja.
Paketti sisältää com.sun.net.httpserver, joka sisältää jwebserver-apuohjelman ja API:n kirjastosta toteutuksen kanssa yksinkertaiselta http-palvelimelta palvelemaan staattista sisältöä (CGI- ja servlet-tyyppisiä ohjaimia ei tueta). Sisäänrakennettua http-palvelinta ei ole optimoitu työkuormille, eikä se tue pääsynhallintaa tai todennusta, koska se on suunniteltu ensisijaisesti käytettäväksi prototyyppi-, virheenkorjaus- ja testausprojektien kehitysprosessissa.
Muista muutoksista jotka erottuvat:
- JavaDoc tukee tunnistetta "@katkelma» upottaa toimivia esimerkkejä ja koodinpätkiä API-dokumentaatioon, jota voidaan käyttää vahvistustyökaluilla, syntaksin korostuksella ja IDE-integraatiolla.
- Vanhentunut ja poistetaan tulevassa julkaisussa, viimeistelymekanismi sekä siihen liittyvät menetelmät, kuten Object.finalize(), Enum.finalize(), Runtime.runFinalization() ja System.runFinalization().
- jätteenkeräilijät ZGC (Z Garbage Collector), SerialGC ja ParallelGC ne tukevat merkkijonojen duplikointia.
JavaSE 18 luokitellaan tavalliseksi tukijulkaisuksi, joiden päivitykset julkaistaan ennen seuraavaa versiota. Pitkän aikavälin tuen (LTS) haaran pitäisi olla Java SE 17, joka saa päivityksiä vuoteen 2029 asti.
On tärkeää muistaa, että Java 10 -julkaisusta lähtien projekti siirtyi uuteen kehitysprosessiin, mikä tarkoittaa lyhyempää sykliä uuden julkaisun muodostukselle. Uusia toimintoja kehitetään nyt jatkuvasti päivittyvässä päähaarassa, joka sisältää jo tehdyt muutokset ja josta haarat haarautuvat kuuden kuukauden välein vakauttamaan uusia julkaisuja.
Hanki Java SE 18
Jos olet kiinnostunut testaamaan tätä uutta julkaisua, ota huomioon, että koontiversiot ovat valmiita Linuxille (x86_64, AArch64), Windowsille (x86_64) ja macOS:lle (x86_64, AArch64) ja ne voidaan hankkia. alla olevasta linkistä.