Java SE 23 ma OpenJDK 23 tatalaina

Ina ua maeʻa le ono masina o le atinaʻe, na faʻasalalau e Oracle le Java SE 23 platform (Java Platform, Standard Edition 23), lea e faʻaaogaina ai le OpenJDK project open source e fai ma faʻataʻitaʻiga. Se'i vagana ai le aveesea o nisi o mea ua le toe aoga, Java SE 23 o lo'o fa'atumauina le feso'ota'iga i tua ma fa'asalalauga muamua o le Java platform - o le tele o galuega Java na tusia muamua o le a galue e aunoa ma ni suiga pe a fa'atautaia i lalo o le fa'asologa fou. Fausia faufale o Java SE 22 (JDK, JRE ma Server JRE) ua saunia mo Linux (x86_64, AArch64), Windows (x86_64) ma macOS (x86_64, AArch64). Fa'atupuina e le OpenJDK poloketi, o le Java 23 fa'asinomaga fa'atinoga o lo'o tatala atoatoa i lalo ole laisene GPLv2, fa'atasi ai ma GNU ClassPath tuusaunoaga e mafai ai ona feso'ota'i malosi ma oloa fa'apisinisi.

Java SE 23 ua faʻavasegaina o se faʻasalalauga lagolago masani ma o le a faʻaauau pea ona maua faʻamatalaga seia oʻo i le isi faʻasalalauga. Ole lala ole Long Term Support (LTS) e tatau ona avea ma Java SE 21 poʻo Java SE 17, lea o le a maua faʻamatalaga seia oʻo i le 2031 ma le 2029, i le faasologa (e masani ona avanoa seia oʻo i le 2028 ma le 2026). O le faʻalauteleina o le lagolago mo le LTS lala o Java SE 8 o le a tumau seia oʻo i le 2030, ma Java SE 11 seia oʻo i le 2032.

Faatasi ai ma le 23 faʻafouga na faʻatulagaina i Java SE:

  • O le faʻaogaina o le faʻaogaina o le ZGC (Generation Z Garbage Collector) e faʻaaogaina lapisi e mafai ona faʻaaogaina, e faʻaaoga ai le tuʻufaʻatasia o mea "matua" ma "talavou", lea e faʻateleina ai le lelei o le faʻamamaina o mea na faia talu ai nei ma se olaga puupuu. O le fa'aaogaina o le Generational ZGC e fa'aitiitia ai le fa'aletonu o fale i le taimi o le fa'asoasoaina o puna'oa, fa'aitiitia ai le uta o le PPU ma le fa'aogaina o le mafaufau ile aoina o lapisi. Faʻataʻitaʻiga Generational ZGC ma Apache Cassandra 4 na faʻaalia ai le 4x faʻaopoopoga i le gaosiga ma le faʻamautu faʻaputuga ma le kuata faʻaititia o le faʻaputuga faʻaputu ma le faʻaauau pea.
  • JavaDoc ua faʻaopoopoina le lagolago mo le faʻaaogaina o Markdown e faʻamau ai le code i faʻamatalaga, lea e mafai ona faʻaogaina nai lo le faʻafefiloi o HTML ma JavaDoc @ pine.
    Java SE 23 ma OpenJDK 23 tatalaina
  • Ua fa'aleleia faiga fa'atusa fa'atusa ma le lagolago muamua mo le fa'aogaina o ituaiga tuai (int, byte, char, ma isi ituaiga fa'avae e le o se mea) i ituaiga uma o fa'ata'ita'iga, i le fa'amatalaga "instanceof", ma poloka "switch". sui (x.getStatus()) { mataupu 0 -> “lelei”; mataupu 1 -> "lapataiga"; mataupu 2 -> “sese”; case int i -> “tulaga le iloa:” + i; } pe afai (i instanceof byte b) { … b … }
  • Fa'aopoopoina le lagolago muamua mo le fa'aogaina o se fa'amatalaga e tasi o le "import module M" e fa'aulufale mai uma afifi e auina atu i fafo e se vaega fa'apitoa i le taimi e tasi. O le suiga e matua faafaigofieina ai le toe faʻaaogaina o faletusi faʻapitoa, faʻatagaina oe e aofia ai faletusi ma vasega e aunoa ma le fuafuaina o latou nofoaga i le faʻasologa o pusa. Mo se faʻataʻitaʻiga, o le faʻamaotiina o le "import module java.base" o le a faʻaulufale uma mai ai pusa e 54 o loʻo aofia i le java.base module, lea sa manaʻomia muamua ona taʻua eseese ("import java.io.*", "import java.util.* ” ma isi).

    O le fa'atinoga lona lua o le Vasega-File API o lo'o fa'atulagaina mo le fa'avasegaina, fa'atupuina, ma le fa'aliliuina o faila vasega Java. ClassFile cf = ClassFile.of(); ClassModel classModel = cf.parse(bytes); byte [] newBytes = cf.build(classModel.thisClass().asSymbol(), classBuilder -> {mo (ClassElement ce : classModel) { pe afai (!(ce instanceof MethodModel mm && mm.methodName().stringValue(). startsWith("debug"))) { classBuilder.with(ce);

  • O le faʻaaliga lona valu o le Vector API o loʻo tuʻuina atu ai galuega mo faʻatusatusaga o vete o loʻo faʻatinoina i le faʻaaogaina o faʻatonuga o le vector i le x86_64 ma le AArch64 processors ma faʻatagaina gaioiga e faʻaoga i le taimi e tasi i le tele o tau (SIMD). E le pei o le gafatia o loʻo tuʻuina atu i le HotSpot JIT compiler mo le auto-vectorization o faʻagaioiga scalar, o le API fou e mafai ai ona faʻatautaia manino le vectorization mo le faʻaogaina o faʻamaumauga tutusa.
  • Faaopoopo le faatulagaga, printf, readPassword ma readLine metotia i le java.io.Console vasega e faʻapipiʻi, faʻaali ma faitau tusitusiga e faʻatatau i le nofoaga filifilia. System.console().printf(Locale.FRANCE, "%1$tY-%1$tB-%1$te %1$tA", fou Aso()) 2024-mai-16 jeudi
  • O se fa'ata'ita'iga lona lua o le fa'atinoga o le extended Stream API ua fa'aopoopoina e lagolago ai le fa'amalamalamaina o au lava galuega fa'avaitaimi, lea e mafai ona aoga i tulaga e le lava le fa'aogaina o lo'o iai mo le suiga o fa'amaumauga mana'omia. O lo'o feso'ota'i tagata fa'aleaganu'u i le fa'aogaina o le fa'agaioiga fou o le Vaitafe::gather(Gatherer), lea e fa'agasolo ai elemene e ala i le fa'aogaina o se tagata e fa'atonuina e fa'aoga ia i latou. jshell> Stream.of(1,2,3,4,5,6,7,8,9).gather(new WindowFixed(3)).toList() $1 ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
  • Fa'aopoopoina lona tolu fa'ata'ita'iga fa'ata'ita'iga o vasega fa'aalia manino ma fa'aupuga e le'i ta'ua o le auala "autu", lea e mafai ona fa'ate'aina fa'asalalauga fa'alaua'itele/fa'atosina, pasia le tele o finauga, ma isi fa'alapotopotoga e feso'ota'i ma se ta'utinoga a le vasega. // was public class HelloWorld {public static void main(String[] args) { System.out.println("Talofa lalolagi!"); } } // i le taimi nei e mafai ona e fa'aleaogaina main() { System.out.println("Talofa, Lalolagi!"); }
  • Faʻaopoopoina se faʻaaliga lona lua o se vaega e mafai ai e le au faufale ona faʻamaonia faʻamatalaga aʻo leʻi valaʻau super(...), faʻaaoga e valaʻau manino ai le faufale a le vasega matua mai le faufale a le vasega pe a fai o na faʻamatalaga e le o faasino i se faʻataʻitaʻiga na faia e le faufale. vasega I fafo { void hello() { System.out.println("Talofa"); } vasega Totonu {Inner() {hello(); sili(); } } }
  • Faʻaopoopoina se faʻataʻitaʻiga lona tolu o faʻatinoga o Scoped Values, faʻatagaina faʻamatalaga e le masuia e fefaʻasoaaʻi i filo ma faʻamatalaga fefaʻasoaaʻi lelei i le va o filo a tamaiti (taua e tuufaasolo). Scoped Values ​​o loʻo atiaʻe e sui ai le filo-local variables mechanism ma e sili atu ona lelei pe a faʻaaogaina le tele o numera o filo (e afe pe miliona o filo). O le eseesega tele i le va o le Scoped Values ​​​​ma filo-local variables o le mea muamua e tusia tasi, e le mafai ona suia i le lumanaʻi, ma tumau avanoa mo le umi o le faʻatinoina o le filo.
  • O se faʻaaliga lona tolu o le Structured Concurrency API ua tuʻuina atu mo le suʻega, faʻafaigofie le atinaʻeina o talosaga e tele-filo e ala i le faʻatinoina o galuega e tele o loʻo faʻatautaia i filo eseese o se poloka e tasi.
  • O auala e maua ai mafaufauga i fafo (i fafo atu o le JVM) na saunia e le sun.misc.Unsafe vasega ua faʻaaogaina ma faʻatulagaina mo le aveeseina. Ina ia maua le manatua mai fafo ma fegalegaleai ma code i fafo, e fautuaina e faʻaoga le VarHandle API ma le FFM (Fuafuaga Faʻamatalaga & Manatu) API.

E le gata i lea, e mafai ona matou matauina le lolomiina o se faʻafouga i luga o le faʻavae mo le fatuina o talosaga ma le JavaFX 23 faʻataʻitaʻiga faʻataʻitaʻiga ma le faʻaofiina o le GraalVM JIT compiler i le Oracle JDK 23 autu.

O loʻo tuʻuina atu foʻi se faʻasalalauga fou o le masini komepiuta lautele GraalVM, lea e lagolagoina le faʻaogaina o talosaga i le JavaScript (Node.js), Python, Ruby, R, soʻo se gagana mo le JVM (Java, Scala, Clojure, Kotlin) ma gagana ​lea e mafai ona gaosia ai le LLVM bitcode (C, C++, Rust). I le faaopoopo atu i le lagolagoina o le JDK 23, o le lomiga fou e faʻamalieina ai le mafaufau ma le tele o le code faʻatinoina, ma tuʻuina atu le lagolago atoatoa mo meafaigaluega mo le faʻapipiʻiina o le Python ma le WebAssembly i le Java code e faʻaaoga ai le JIT compilation.

puna: opennet.ru

Faaopoopo i ai se faamatalaga