Java SE 23 sy OpenJDK 23 navoaka

Taorian'ny enim-bolana fampandrosoana, Oracle dia namoaka ny sehatra Java SE 23 (Java Platform, Standard Edition 23), izay mampiasa ny tetikasa OpenJDK open-source ho fampiharana reference. Ankoatra ny fanesorana ireo endri-javatra efa lany andro, ny Java SE 23 dia mitazona ny fifanarahana mihemotra amin'ny famoahana teo aloha ny sehatra Java - ny ankamaroan'ny tetikasa Java nosoratana teo aloha dia hiasa tsy misy fiovana rehefa mandeha amin'ny dikan-teny vaovao. Ny fananganana Java SE 22 (JDK, JRE ary Server JRE) efa vonona ho an'ny Linux (x86_64, AArch64), Windows (x86_64) ary macOS (x86_64, AArch64). Novolavolain'ny tetikasa OpenJDK, ny fampiharana reference Java 23 dia loharano misokatra tanteraka eo ambanin'ny lisansa GPLv2, miaraka amin'ny GNU ClassPath maningana mamela ny fifandraisana mavitrika amin'ny vokatra ara-barotra.

Java SE 23 dia sokajiana ho famotsorana fanohanana tsy tapaka ary hanohy handray fanavaozana mandra-pahatongan'ny famoahana manaraka. Ny sampana Long Term Support (LTS) dia tokony ho Java SE 21 na Java SE 17, izay hahazo fanavaozana hatramin'ny 2031 sy 2029, tsirairay avy (amin'ny ankapobeny hatramin'ny 2028 sy 2026). Ny fanohanana maharitra ny sampana LTS an'ny Java SE 8 dia haharitra hatramin'ny 2030, ary ny Java SE 11 hatramin'ny 2032.

Anisan'ireo fanavaozana 23 naroso tao amin'ny Java SE:

  • Ny fomba fampandehanana ny ZGC (Generation Z Garbage Collector) dia alefa amin'ny alàlan'ny default, amin'ny alàlan'ny fanodinana misaraka amin'ny zavatra "antitra" sy "tanora", izay mampitombo ny fahombiazan'ny fanadiovana ireo zavatra noforonina amin'ny androm-piainany fohy. Ny fampiasana ZGC Generational dia mampihena ny mety hisian'ny toeram-pivarotana mandritra ny fizarana loharanon-karena, mampihena ny enta-mavesatry ny CPU sy ny fanjifana fahatsiarovana mandritra ny fanangonana fako. Ny fitsapana ZGC Generational miaraka amin'ny Apache Cassandra 4 dia nampiseho fitomboana 4x amin'ny fidirana miaraka amin'ny haben'ny antontam-bato raikitra ary ny fampihenana ampahefatry ny haben'ny antontam-bato miaraka amin'ny fidirana tsy tapaka.
  • JavaDoc dia nanampy fanohanana amin'ny fampiasana Markdown handrakitra ny kaody ao anaty fanehoan-kevitra, izay azo ampiasaina fa tsy fifangaroana HTML sy JavaDoc @ tags.
    Java SE 23 sy OpenJDK 23 navoaka
  • Nohatsaraina ny mekanika mampifanaraka ny lamina miaraka amin'ny fanohanana mialoha ny fampiasana karazana primitive (int, byte, char, ary karazana fototra tsy misy zavatra hafa) amin'ny karazana maodely rehetra, ao amin'ny fanambarana "instanceof", ary amin'ny sakana "switch". switch (x.getStatus()) { tranga 0 -> “okay”; tranga 1 -> "fampitandremana"; tranga 2 -> "error"; case int i -> “status tsy fantatra: ” + i; } raha (i instanceof byte b) { … b … }
  • Nampiana fanohanana vonjimaika amin'ny fampiasana fanambarana tokana "import module M" hanafatra entana rehetra aondrana amin'ny maodely voafaritra indray mandeha. Ny fanovana dia manamora ny fampiasana indray ny tranomboky modular, ahafahanao mampiditra tranomboky sy kilasy nefa tsy mamaritra ny toerany ao amin'ny ambaratongan'ny fonosana. Ohatra, ny famaritana ny "module import java.base" dia hanafatra ny fonosana 54 rehetra tafiditra ao amin'ny module java.base, izay tokony holazaina manokana teo aloha ("import java.io.*", "import java.util.* ” sns.).

    Ny fampiharana savaranonando faharoa an'ny Class-File API dia atolotra ho an'ny famafazana, famokarana ary famadihana ny rakitra kilasy Java. ClassFile cf = ClassFile.of(); ClassModel classModel = cf.parse(bytes); byte [] newBytes = cf.build(classModel.thisClass().asSymbol(), classBuilder -> { for (ClassElement ce : classModel) { raha (!(ce instanceof MethodModel mm && mm.methodName().stringValue(). startsWith("debug"))) { classBuilder.with(ce);

  • Ny fijery fahavalo amin'ny Vector API dia manome fiasa ho an'ny kajy vector izay tanterahina amin'ny alàlan'ny torolàlana vector amin'ny processeur x86_64 sy AArch64 ary mamela ny fandidiana hampiharina amin'ny soatoavina marobe (SIMD). Tsy toy ny fahaiza-manao omena ao amin'ny mpanangona HotSpot JIT ho an'ny auto-vectorization ny asa scalar, ny API vaovao dia mamela ny fanaraha-maso mazava ny vectorization ho an'ny fanodinana data mifanitsy.
  • Nampiana endrika, printf, readPassword ary fomba readLine amin'ny kilasy java.io.Console mba handrafetana, hanehoana ary hamaky lahatsoratra mifototra amin'ny toerana voafantina. System.console().printf(Locale.FRANCE, "%1$tY-%1$tB-%1$te %1$tA", Date()) 2024-mai-16 jeudi
  • Nampiana fanindroany ny fampiharana ny Stream API miitatra izay manohana ny famaritana ny asa mpanelanelana anao manokana, izay mety ilaina amin'ny toe-javatra izay tsy ampy ho an'ny fanovana angon-drakitra irina. Ampifandraisina amin'ny alalan'ny fampandehanana mpanelanelana vaovao Stream::gather(Gatherer) ireo tompon'andraikitra teratany, izay manodina ireo singa amin'ny alàlan'ny fampiharana ny mpitantana voatondron'ny mpampiasa azy ireo. jshell> Stream.of(1,2,3,4,5,6,7,8,9).angona(vaovao WindowFixed(3)).toList() $1 ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
  • Nampiana fampiharana santatra fahatelo amin'ny kilasy nambara an-kolaka sy tranga tsy voatonona amin'ny fomba "main", izay afaka manafoana ny fanambarana ampahibemaso/statika, mandalo tohan-kevitra maromaro, ary sampana hafa mifandray amin'ny fanambarana kilasy. // dia class public HelloWorld { public static void main(String[] args) { System.out.println("Manahoana izao tontolo izao!"); } } // izao dia azonao atao ny manafoana main() { System.out.println("Manahoana, izao tontolo izao!"); }
  • Nampiana fanindroany fanindroany ny endri-javatra iray izay ahafahan'ny constructors mamaritra fanehoan-kevitra alohan'ny hiantsoana super(...), ampiasaina hiantsoana mazava tsara ny constructor classe ray aman-dreny avy amin'ny constructor kilasy iray nolovaina raha toa ka tsy manondro ohatra noforonin'ny constructor ireo teny ireo. class Outer {void hello() { System.out.println("Manahoana"); } class Inner { Inner() { hello(); super(); } } }
  • Nampiana fanintelony ny fampiharana ny Scoped Values, mamela ny angon-drakitra tsy miova hozaraina amin'ny kofehy sy ny angon-drakitra mifanakalo amin'ny fomba mahomby eo amin'ny kofehy ankizy (ny soatoavina dia nolovaina). Ny Scoped Values ​​dia novolavolaina hanoloana ny mekanika miovaova eo an-toerana ary mahomby kokoa rehefa mampiasa kofehy virtoaly be dia be (kofehy an'arivony na an-tapitrisany). Ny fahasamihafana lehibe eo amin'ny Scoped Values ​​sy ny varimbazaha eo an-toerana dia ny hoe ny teo aloha dia nosoratana indray mandeha, tsy azo ovaina amin'ny ho avy, ary mijanona ho tsy misy afa-tsy mandritra ny faharetan'ny famonoana ny kofehy.
  • Ny fijery fahatelo momba ny Structured Concurrency API dia natolotra ho an'ny fitiliana, manamora ny fampivoarana ny rindranasa maromaro misy kofehy amin'ny alàlan'ny fanodinana asa maro mandeha amin'ny kofehy samihafa ho toy ny sakana tokana.
  • Ny fomba fidirana amin'ny fitadidiana ivelany (eo ivelan'ny JVM) nomen'ny kilasy sun.misc.Unsafe dia tsy ampiasaina ary voalahatra ho esorina. Mba hidirana amin'ny fitadidiana ivelan'ny havoana sy hifaneraserana amin'ny kaody ivelany, dia asaina mampiasa ny VarHandle API sy ny FFM (Fanction & Memory) API.

Fanampin'izany, azontsika atao ny manamarika ny famoahana fanavaozana amin'ny sehatra hamoronana rindranasa miaraka amin'ny interface grafika JavaFX 23 sy ny fampidirana ny GraalVM JIT compiler ao amin'ny Oracle JDK 23.

Naseho ihany koa ny famoahana vaovao ny milina virtoaly manerantany GraalVM, izay manohana ny fampiharana amin'ny JavaScript (Node.js), Python, Ruby, R, fiteny rehetra ho an'ny JVM (Java, Scala, Clojure, Kotlin) ary fiteny ​izay LLVM bitcode azo vokarina (C, C++, Rust). Ho fanampin'ny fanohanana ny JDK 23, ny dikan-teny vaovao dia manatsara ny fanjifana fahatsiarovana sy ny haben'ny code executable, ary manome fanohanana feno ho an'ny fitaovana hampidirana Python sy WebAssembly amin'ny code Java amin'ny fampiasana JIT compilation.

Source: opennet.ru

Add a comment