Java SE 19 udgivelse

Efter seks måneders udvikling har Oracle frigivet Java SE 19 (Java Platform, Standard Edition 19) platformen, som bruger OpenJDK open source-projektet som referenceimplementering. Med undtagelse af fjernelse af nogle forældede funktioner, bevarer Java SE 19 bagudkompatibilitet med tidligere udgivelser af Java-platformen - de fleste tidligere skrevne Java-projekter vil stadig fungere uden ændringer, når de køres under den nye version. Klar til at installere builds af Java SE 19 (JDK, JRE og Server JRE) er forberedt til Linux (x86_64, AArch64), Windows (x86_64) og macOS (x86_64, AArch64). Java 19-referenceimplementeringen er udviklet af OpenJDK-projektet og er fuldt åben under GPLv2-licensen med GNU ClassPath-undtagelser for at tillade dynamiske links til kommercielle produkter.

Java SE 19 er kategoriseret som en almindelig supportudgivelse, med opdateringer, der skal frigives inden næste udgivelse. Den langsigtede support (LTS) filial bør være Java SE 17, som vil modtage opdateringer indtil 2029. Husk, at fra og med udgivelsen af ​​Java 10 skiftede projektet til en ny udviklingsproces, hvilket indebærer en kortere cyklus for dannelsen af ​​nye udgivelser. Ny funktionalitet udvikles nu i én konstant opdateret mastergren, som inkorporerer allerede gennemførte ændringer, og hvorfra filialer forgrenes hvert halve år for at stabilisere nye udgivelser.

Nye funktioner i Java 19 inkluderer:

  • Foreløbig understøttelse af optagelsesmønstre er blevet foreslået, hvilket udvider mønstertilpasningsfunktionen introduceret i Java 16 med værktøjer til at analysere værdierne af rekordklasser. For eksempel: record Point(int x, int y) {} void printSum(Objekt o) { if (o forekomst af Point(int x, int y)) { System.out.println(x+y); } }
  • Linux-builds understøtter RISC-V-arkitekturen.
  • Tilføjet foreløbig understøttelse af FFM (Foreign Function & Memory) API, som giver dig mulighed for at organisere interaktionen af ​​Java-programmer med ekstern kode og data ved at kalde funktioner fra eksterne biblioteker og få adgang til hukommelse uden for JVM.
  • Tilføjet understøttelse af virtuelle tråde, som er letvægtstråde, der i høj grad forenkler skrivning og vedligeholdelse af højtydende flertrådede applikationer.
  • En fjerde forhåndsvisning af Vector API er blevet foreslået, der giver funktioner til vektorberegninger, der udføres ved hjælp af vektorinstruktioner på x86_64- og AArch64-processorer og tillader operationer at blive anvendt samtidigt på flere værdier (SIMD). I modsætning til funktionerne i HotSpot JIT-kompileren til autovektorisering af skalaroperationer, gør den nye API det muligt eksplicit at kontrollere vektorisering til parallel databehandling.
  • En tredje eksperimentel implementering af mønstertilpasning i "switch"-udtryk er blevet tilføjet, hvilket tillader brugen i "case"-etiketter ikke af nøjagtige værdier, men af ​​fleksible mønstre, der dækker en række værdier på én gang, for hvilke det tidligere var nødvendigt at bruge besværlige kæder af "hvis ... andet" udtryk. Objekt o = 123L; String formatted = switch (o) { case Heltal i -> String.format("int %d", i); case Lang l -> String.format("lang %d", l); case Dobbelt d -> String.format("dobbelt %f", d); case String s -> String.format("String %s", s); default -> o.toString(); };
  • Tilføjet en eksperimentel API til struktureret parallelisme, som forenkler udviklingen af ​​flertrådede applikationer ved at behandle flere opgaver, der kører i forskellige tråde, som en enkelt blok.

Kilde: opennet.ru

Tilføj en kommentar