جاوا SE 23 او OpenJDK 23 خپور شو

د شپږو میاشتو پراختیا وروسته، اوریکل د جاوا SE 23 پلیټ فارم خپور کړ (جاوا پلیټ فارم، معیاري نسخه 23)، کوم چې د خلاصې سرچینې OpenJDK پروژه د حوالې پلي کولو په توګه کاروي. د ځینې متروک ب featuresو لرې کولو استثنا سره ، جاوا SE 23 د جاوا پلیټ فارم پخوانیو ریلیزونو سره شاته مطابقت ساتي - د جاوا ډیری دمخه لیکل شوي پروژې به پرته له بدلونونو کار وکړي کله چې د نوي نسخې لاندې پرمخ ځي. د جاوا SE 22 (JDK، JRE او Server JRE) د نصب کولو لپاره چمتو جوړونه د لینکس (x86_64، AArch64)، وینډوز (x86_64) او macOS (x86_64، AArch64) لپاره چمتو شوي. د OpenJDK پروژې لخوا رامینځته شوی ، د جاوا 23 حوالې پلي کول د GPLv2 جواز لاندې په بشپړ ډول خلاص سرچینه ده ، د GNU ClassPath استثناء سره د سوداګریزو محصولاتو سره متحرک اړیکې ته اجازه ورکوي.

جاوا SE 23 د منظم ملاتړ ریلیز په توګه طبقه بندي شوی او تر راتلونکي خوشې کیدو پورې به تازه معلومات ترلاسه کولو ته دوام ورکړي. د اوږدې مودې ملاتړ (LTS) څانګه باید د Java SE 21 یا Java SE 17 وي، کوم چې به په ترتیب سره تر 2031 او 2029 پورې تازه معلومات ترلاسه کړي (عموما تر 2028 او 2026 پورې شتون لري). د جاوا SE 8 LTS څانګې لپاره پراخ شوی ملاتړ به تر 2030 پورې دوام وکړي، او جاوا SE 11 تر 2032 پورې.

په جاوا SE کې وړاندیز شوي د 23 نوښتونو څخه:

  • د ZGC (جنریشن Z کثافاتو راټولونکی) د کثافاتو راټولونکي د عملیاتو تولیدي حالت د "زاړه" او "ځوان" شیانو جلا پروسس کولو په کارولو سره په ډیفالټ فعال شوی ، کوم چې د لنډ ژوند سره پدې وروستیو کې رامینځته شوي شیانو پاکولو موثریت ډیروي. د تولیدي ZGC کارول د سرچینو تخصیص پرمهال د سټالونو خطر کموي ، د کثافاتو راټولولو پرمهال د CPU بار او د حافظې مصرف کموي. د Apache Cassandra 4 سره د نسلي ZGC ازموینې د ثابتې اندازې سره په ټرپټ کې 4x زیاتوالی ښودلی او د ثابت اندازې سره د هپ اندازه کې څلورمه برخه کمښت ښودلی.
  • JavaDoc په نظرونو کې د سند کوډ لپاره د مارک ډاون کارولو لپاره ملاتړ اضافه کړی ، کوم چې د HTML او JavaDoc @ ټاګونو ترکیب پرځای کارول کیدی شي.
    جاوا SE 23 او OpenJDK 23 خپور شو
  • د نمونو د سمون میکانیزمونه د لومړني ډولونو (int، byte، char، او نورو غیر څیز بنسټیز ډولونو) د کارولو لپاره د لومړني ملاتړ سره په هر ډول ټیمپلیټونو کې، د "انسټانس آف" بیان، او "سوئچ" بلاکونو کې ښه شوي. بدل کړئ (x.getStatus()) { قضیه 0 -> "ښه"؛ قضیه 1 -> "خبرداری"؛ قضیه 2 -> "غلطي"؛ قضیه int i -> "نامعلوم حالت:" + i؛ } که (i مثال د بایټ ب) { … b … }
  • د یو واحد "واردولو ماډل M" بیان کارولو لپاره لومړني ملاتړ اضافه شوی ترڅو ټول کڅوړې وارد کړي چې د ځانګړي ماډل لخوا په یوځل کې صادر شوي. بدلون د پام وړ د ماډلر کتابتونونو بیا کارول ساده کوي، تاسو ته اجازه درکوي چې کتابتونونه او ټولګي شامل کړئ پرته له دې چې د بسته بندي په درجه بندي کې د دوی ځای مشخص کړي. د مثال په توګه، د "د واردولو ماډل java.base" مشخص کول به ټول 54 کڅوړې وارد کړي چې په java.base ماډل کې شامل دي، کوم چې مخکې به یې په جلا توګه ذکر کولو ته اړتیا درلوده ("java.io.*"، "import java.util.* او داسې نور).

    د کلاس فایل API دوهم لومړني پلي کول د جاوا کلاس فایلونو د پارس کولو ، تولید کولو او بدلولو لپاره وړاندیز شوی. ClassFile cf = ClassFile.of(); ClassModel classModel = cf.parse(bytes); byte[] newBytes = cf.build(classModel.thisClass().asSymbol()، classBuilder -> { د (ClassElement ce : classModel) لپاره { که (!(ce instanceof MethodModel mm && mm.methodName().stringValue(). startsWith("debug"))) { classBuilder.with(ce);

  • د ویکتور API اتم مخکتنه د ویکتور محاسبې لپاره دندې چمتو کوي چې په x86_64 او AArch64 پروسیسرونو کې د ویکتور لارښوونو په کارولو سره اجرا کیږي او عملیات ته اجازه ورکوي چې په ورته وخت کې ډیری ارزښتونو (SIMD) ته پلي شي. د سکیلر عملیاتو د آټو ویکٹرائزیشن لپاره د HotSpot JIT کمپیلر کې چمتو شوي ظرفیتونو برخلاف ، نوی API دا ممکنه کوي چې د موازي ډیټا پروسس کولو لپاره په واضح ډول ویکٹرائزیشن کنټرول کړي.
  • د ټاکل شوي ځای پراساس متن فارمیټ کولو ، ښودلو او لوستلو لپاره java.io.Console ټولګي ته فارمیټ ، printf ، readPassword او readLine میتودونه اضافه شوي. System.console().printf(Locale.FRANCE, "%1$tY-%1$tB-%1$te %1$tA", نوې نېټه()) 2024-mai-16 jeudi
  • د تمدید شوي سټریم API دوهم مخکتنه پلي کول اضافه شوي چې ستاسو د خپل منځګړیتوب عملیاتو تعریف کولو ملاتړ کوي ، کوم چې ممکن په هغه قضیو کې ګټور وي چیرې چې موجوده جوړ شوي منځګړي عملیات د مطلوب ډیټا بدلون لپاره کافي ندي. اصلي هینډلرونه د نوي منځمهاله عملیاتو Stream::gather (Gatherer) په کارولو سره وصل شوي ، کوم چې د کارونکي لخوا ټاکل شوي هینډلر پلي کولو سره د جریان عناصر پروسس کوي. jshell> Stream.of(1,2,3,4,5,6,7,8,9) راټول کړئ(نوی کړکۍ فکس شوی(3)).toList()$1 ==> [[1, 2, 3], [۴، ۵، ۶]، [۷، ۸، ۹]]
  • د ضمني اعلان شوي ټولګیو دریم ابتدايي پلي کول او د "اصلي" میتود نامعلوم مثالونه اضافه کړل، کوم چې کولی شي د عامه / جامد اعالنونو سره توزیع کړي، د دلیلونو لړۍ تیر کړي، او د ټولګي اعالمیې سره تړلې نورې ادارې. // عامه طبقه وه HelloWorld { عامه static void main(String[] args) { System.out.println("سلام نړۍ!"); } } // اوس تاسو کولی شئ اصلي() { System.out.println("سلام، نړۍ!") باطل کړئ؛ }
  • د فیچر دوهم مخکتنه اضافه کړه کوم چې جوړونکو ته اجازه ورکوي چې د سوپر (...) زنګ کولو دمخه څرګندونه مشخص کړي ، د مورثي ټولګي جوړونکي څخه د والدینو ټولګي جوړونکي ته په ښکاره ډول ویلو لپاره کارول کیږي که چیرې دا څرګندونې د جوړونکي لخوا رامینځته شوي مثال ته اشاره ونه کړي. ټولګی بهرنی { باطل هیلو() { System.out.println("Hello"); } ټولګي داخلي { داخلي () { سلام (); super(); } } }
  • د سکوپ شوي ارزښتونو دریم مخکتنه پلي کول اضافه شوي، د بدلون وړ ډاټا ته اجازه ورکوي چې د تارونو په اوږدو کې شریک شي او ډاټا د ماشومانو د تارونو ترمنځ په اغیزمنه توګه تبادله شي (ارزښتونه په میراث کې دي). سکوپ شوي ارزښتونه د تار - محلي متغیر میکانیزم ځای په ځای کولو لپاره رامینځته شوي او ډیر اغیزمن دي کله چې د ډیری لوی شمیر مجازی تارونو (زرګونو یا ملیونونو تارونو) کارولو سره. د Scoped Values ​​او thread-local variables ترمنځ اصلي توپیر دا دی چې پخواني یو ځل لیکل شوي، په راتلونکي کې نشي بدلیدلی، او یوازې د تار د اجرا کولو مودې لپاره شتون لري.
  • د جوړښت شوي موافقت API دریمه کتنه د ازموینې لپاره وړاندیز شوې ، د یو واحد بلاک په توګه په مختلف تارونو کې د ډیری کارونو پروسس کولو سره د څو تارونو غوښتنلیکونو پراختیا ساده کول.
  • د بهرنۍ حافظې د لاسرسي میتودونه (د JVM څخه بهر) د sun.misc.Unsafe ټولګي لخوا چمتو شوي او د لرې کولو لپاره ټاکل شوي. د آف هیپ حافظې ته لاسرسي او د بهرني کوډ سره متقابل عمل کولو لپاره ، دا سپارښتنه کیږي چې د VarHandle API او FFM (بهرني فعالیت او حافظه) API وکاروئ.

سربیره پردې ، موږ کولی شو د JavaFX 23 ګرافیکي انٹرفیس سره د غوښتنلیکونو رامینځته کولو او په اصلي اوریکل JDK 23 کې د GraalVM JIT کمپیلر شاملولو لپاره پلیټ فارم ته د تازه خپرولو یادونه وکړو.

همدارنګه د نړیوال مجازی ماشین GraalVM نوی ریلیز وړاندې شوی، کوم چې په جاواسکریپټ (Node.js)، Python، Ruby، R، د JVM (جاوا، سکالا، کلوجور، کوټلین) او ژبو لپاره هرې ژبې کې د چلولو غوښتنلیکونو ملاتړ کوي. د کوم لپاره چې LLVM بټ کوډ رامینځته کیدی شي (C , C++ , Rust). د JDK 23 ملاتړ کولو سربیره ، نوې نسخه د حافظې مصرف او د اجرا وړ کوډ اندازه غوره کوي ، او د JIT تالیف په کارولو سره جاوا کوډ کې د Python او WebAssembly ځای پرځای کولو وسیلو لپاره بشپړ ملاتړ چمتو کوي.

سرچینه: opennet.ru

Add a comment