Oracle avduket nylig utgivelsen av den nye versjonen av Java SE 22, som presenteres etter seks måneders utvikling og som er klassifisert som en vanlig støtteversjon og vil fortsette å motta oppdateringer til neste versjon.
Las Gjeldende LTS-versjoner er Java SE 21 og Java SE 17, som vil motta oppdateringer til henholdsvis 2031 og 2029 (generelt tilgjengelig til 2028 og 2026) og offentlig støtte for LTS-versjonen av Java SE 11 som ble avsluttet i september i fjor, ble forlenget til 2032, mens utvidet støtte for LTS-versjonen Java SE 8 vil fortsette til 2030.
De viktigste nye funksjonene i Java SE 22
I denne nye versjonen av Java SE 22 som presenteres, er introduksjon av den andre forhåndsvisningsimplementeringen av "Scoped Values", som letter effektiv utveksling av uforanderlige data mellom tråder og arven av verdier mellom dem.
Denne funksjonaliteten er designet for å være mer effektiv når du deler data mellom underordnede tråder, spesielt når du håndterer et stort antall virtuelle tråder. Omfangsverdier er designet for å erstatte trådlokale variabler og er spesielt effektive i scenarier med tusenvis eller millioner av tråder. Hovedforskjellen mellom omfangsverdier og trådlokale variabler ligger i deres uforanderlige natur: omfangsverdier skrives én gang og kan ikke endres i fremtiden. I tillegg forblir de bare tilgjengelige under utførelsen av tråden de ble definert på.
En annen endring som skiller seg ut i Java SE 22 er det G1 søppelsamleren inkluderer nå støtte for regionfesting, som lar deg midlertidig fikse plasseringen av objekter i minnet. Denne funksjonen hindrer søppelsamleren i å flytte disse gjenstandene, slik at referanser til dem kan sendes trygt mellom Java og opprinnelig kode. Regionfesting bidrar til å redusere ventetiden og unngå å deaktivere søppelinnsamling når du kjører kritiske Java Native Interface (JNI)-seksjoner med innebygd kode.
I tillegg til det, også en foreløpig funksjon er implementert til la konstruktører spesifisere uttrykk før de kaller super(...). Dette brukes til å eksplisitt kalle en konstruktør av den overordnede klassen fra en arvet klassekonstruktør, så lenge disse uttrykkene ikke refererer til en forekomst opprettet av konstruktøren.
Videre FFM API (fremmed funksjon og minne) har stabilisert seg og med dette er samspillet mellom Java-programmer med ekstern kode og data nå tillatt ved å kalle opp funksjoner fra eksterne biblioteker og få tilgang til minne utenfor JVM. Dette oppnås uten å måtte ty til bruk av JNI (Java Native Interface).
Av de andre endringene som skiller seg ut fra denne nye versjonen:
- Den parallelle søppelsamleren har sett ytelsesforbedringer ved arbeid med store sett med gjenstander. Denne optimaliseringen har redusert ventetiden før man begynner å søke etter et objekt med 20 % i enkelte tester med betydelig store sett med objekter.
- Det er nå mulig å bruke tegnet "_" for å spesifisere ubrukte men nødvendige variabler og mønstre når du ringer. Dette forenkler skriving av kode ved å unngå behovet for å navngi unødvendige variabler.
- En foreløpig API har blitt foreslått for å analysere, generere og konvertere Java-klassefiler.
- Det er nå mulig å kjøre Java-programmer uten å kompilere dem separat eller sette opp et byggesystem. Dette forenkler kjøringen av programmer hvor koden er fordelt over flere filer.
- En annen implementering av String Templates er lagt til, som gjør det mulig å kombinere tekst med uttrykk og beregnede variabler på en mer effektiv og lesbar måte.
- Foreløpige implementeringer av Vector API for vektorberegninger og API for Structured Concurrency er foreslått for å forenkle utviklingen av flertrådede applikasjoner.
Til slutt, hvis du er det interessert i å vite mer om det, kan du sjekke detaljene i følgende lenke.
Last ned Java SE 22
For de som er interessert i å installere den nye versjonen av Java SE 22, bør du vite at kompilasjonene (JDK, JRE og Server JRE) allerede er klare for Linux, Windows og macOS.