د شپږو میاشتو پراختیا وروسته، اوراکل جاوا SE 24 (جاوا پلیټ فارم، معیاري نسخه 24) خپور کړ، کوم چې د خلاصې سرچینې OpenJDK پروژه د خپل حوالې پلي کولو په توګه کاروي. د ځینو تخریب شویو ځانګړتیاوو له لرې کولو پرته، جاوا SE 24 د جاوا پلیټ فارم د پخوانیو خپرونو سره شاته مطابقت ساتي — ډیری پخوانۍ لیکل شوي جاوا پروژې به د نوي نسخې لاندې پرته له تعدیل څخه دوام وکړي. د جاوا SE 24 (JDK، JRE، او سرور JRE) د نصبولو لپاره چمتو جوړونه د لینکس (x86_64، AArch64)، وینډوز (x86_64)، او macOS (x86_64، AArch64) لپاره شتون لري. د OpenJDK پروژې لخوا رامینځته شوی، د جاوا SE 24 حوالې پلي کول د GPLv2 جواز لاندې په بشپړ ډول خلاص سرچینه ده د GNU ClassPath استثنا سره چې د سوداګریزو محصولاتو سره متحرک لینک کولو ته اجازه ورکوي.
جاوا SE 24 د منظم ملاتړ خپرونې په توګه طبقه بندي شوی، چې تازه معلومات یې تر راتلونکي خپرونې پورې خپریږي. د اوږدمهاله ملاتړ (LTS) څانګه باید جاوا SE 21 یا جاوا SE 17 وي، کوم چې به په ترتیب سره تر 2031 او 2029 پورې تازه معلومات ترلاسه کړي (عموما تر 2028 او 2026 پورې شتون لري). د جاوا SE 8 LTS څانګې لپاره غځول شوی ملاتړ به تر 2030 پورې دوام وکړي، او جاوا SE 11 به تر 2032 پورې دوام وکړي. د LTS راتلونکې خپرونه به د جاوا SE 25 د مني خپرونه وي.
په جاوا SE کې وړاندیز شوي د 24 نوښتونو څخه:
- د شینندوا د کثافاتو راټولونکي د عملیاتو یوه تجربوي تولیدي طریقه وړاندیز شوې، کوم چې په جلا توګه زاړه او وروستي جوړ شوي شیان پروسس کوي ترڅو د لنډ ژوند سره د شیانو پاکولو موثریت ښه کړي. دا نوی حالت د وړاندوینې وړ وړتیا، د بارونو بدلونونو ته انعطاف، او د کثافاتو راټولولو پرمهال د حافظې مصرف کموي. د شینندوا مهالویش کوونکی موخه لري چې د جاوا غوښتنلیک اجرا کولو سره په موازي ډول د ډیرو کارونو په ترسره کولو سره د کثافاتو راټولولو وخت کم کړي.
- د هاټ سپاټ JVM د کمپیکټ آبجیکټ هیډرونو لپاره تجربوي ملاتړ پلي کوي، کوم چې په 64-بټ سیسټمونو کې له 96 څخه 64 بټونو (12 څخه تر 8 بایټس) پورې اندازه کې راټیټ شوي. د سرلیکونو د اندازې کمول تاسو ته اجازه درکوي چې د هپ اندازه کمه کړئ او د کیش موثریت ښه کړئ.
- د G1 کثافاتو راټولونکي د هغو خنډونو پلي کول ساده کړي دي چې حافظې ته د غوښتنلیک لاسرسی څارنه کوي. په نوې نسخه کې، د خنډ پراختیا عملیات د C2 JIT کې د تالیف وروستي پړاو ته لیږدول شوي دي. ازموینې ښیي چې دا ډول لیږد کولی شي د C2 JIT کمپیلر سر لګښت د غوښتنلیک پورې اړه لري 10-20٪ کم کړي.
- د کریپټوګرافیک کیلي مشتق افعال (KDF) کارولو لپاره یو API اضافه کړ، کوم چې د پټ کیلي (د مثال په توګه، پټنوم) او د معلوماتو د خپل سري سیټ پراساس د اړتیا وړ اوږدوالي اضافي کیلي تولیدولو ته اجازه ورکوي. د KDF API اوس مهال د مخکتنې حالت کې دی.
- د وخت څخه مخکې (د وخت څخه مخکې) د ټولګیو بارولو او لینک کولو وړتیا اضافه شوه. دا بدلون د هاټ سپاټ JVM ته اجازه ورکوي چې په اپلیکیشن کې کارول شوي ټولګي چمتو کولو سره ګړندي پیل شي چې دمخه بار شوي او لینک شوي دي. کله چې اپلیکیشن لومړی ځل پیل شي، د ټولو ټولګیو حالت کیش ته فلش کیږي او په راتلونکو لانچونو کې د بارولو ګړندي کولو لپاره کارول کیږي.
- د جاوا کلاس فایلونو د تجزیې، تولید او بدلولو لپاره د کلاس-فایل API اضافه شو.
د کلاس فایل cf = د کلاس فایل.of(); د کلاس ماډل کلاس ماډل = cf.parse(بایټونه); بایټ[] نوی بایټس = cf.build(classModel.thisClass().asSymbol(), classBuilder -> { د (ClassElement ce: classModel) لپاره { که ((!(ce instance of MethodModel mm && mm.methodName().stringValue().startsWith(«debug»))) { classBuilder.with(ce); } } });
- یو پراخ شوی سټریم API اضافه شوی چې ستاسو د خپل منځګړیتوب عملیاتو تعریف کولو ملاتړ کوي، کوم چې په هغه قضیو کې ګټور کیدی شي چیرې چې موجوده جوړ شوي منځګړیتوب عملیات د مطلوب معلوماتو بدلون لپاره کافي ندي. دودیز هینډلرونه د نوي منځګړي عملیات Stream::gather(Gatherer) په کارولو سره ضمیمه شوي، کوم چې د کارونکي لخوا مشخص شوي هینډلر پلي کولو سره د سټریم عناصر پروسس کوي. 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]]
- د ساحې ارزښتونو څلورم لومړني پلي کول وړاندیز شوي، چې د تارونو په اوږدو کې د نه بدلیدونکي معلوماتو شریکولو او د ماشومانو تارونو ترمنځ د معلوماتو مؤثره تبادلې ته اجازه ورکوي (ارزښتونه په میراث کې دي). ساحه شوي ارزښتونه د تار-محلي متغیر میکانیزم ځای په ځای کولو لپاره وده کوي او د ډیری لوی شمیر مجازی تارونو (زرګونو او ملیونونو تارونو) کارولو پرمهال ډیر اغیزمن دي. د ساحې ارزښتونو او د تار-محلي متغیرونو ترمنځ اصلي توپیر دا دی چې پخواني یو ځل لیکل شوي، وروسته نشي بدلیدلی، او یوازې د تار د اجرا کولو مودې لپاره شتون لري.
- د نمونې سره سمون لرونکي انجنونه تازه شوي ترڅو د لومړني ډولونو (انټ، بایټ، چار، او نورو اساسي غیر اعتراض ډولونو) کارولو لپاره لومړني ملاتړ په ټولو ټیمپلیټ ډولونو، انسټانس آف آپریټر، او سویچ بلاکونو کې شامل کړي. سویچ (x.getStatus()) { قضیه 0 -> "ښه"؛ قضیه ۱ -> «خبرداری»؛ دوهمه قضیه -> «تېروتنه»؛ قضیه int i -> "نامعلوم حالت:" + i; } که (i د بایټ ب مثال) { … b … }
- دا د ویکتور API نهمه مسوده ده، کوم چې د ویکتور محاسبو لپاره دندې چمتو کوي چې د x86_64 او AArch64 پروسیسرونو د ویکتور لارښوونو په کارولو سره ترسره کیږي او عملیات په یوځل کې په ډیری ارزښتونو (SIMD) پلي کولو ته اجازه ورکوي. د هاټ سپوټ JIT کمپیلر د سکیلر عملیاتو د اتوماتیک ویکتور کولو برعکس، نوی API د موازي معلوماتو پروسس کولو لپاره په ښکاره ډول د ویکتور کولو کنټرول وړتیا چمتو کوي.
- د مجازی تارونو د همغږي کولو لپاره پلي شوی ملاتړ پرته له دې چې دوی د پلیټ فارم ځانګړي تارونو ته وصل کړي. په یوه همغږي شوي میتود یا بیان کې مجازی تارونه په بلاک شوي حالت کې اوس خپل پلیټ فارم تار خوشې کوي، نورو مجازی تارونو ته اجازه ورکوي چې دا وکاروي، د شته مجازی تارونو شمیر د پام وړ زیاتوي او د هغو غوښتنلیکونو د پیمانه کولو وړتیا ښه کوي چې ملټي تریډینګ کاروي.
- د یوې ځانګړتیا دریمه مسوده اضافه شوه چې جوړونکو ته اجازه ورکوي چې د سوپر (…) زنګ وهلو دمخه څرګندونې مشخص کړي ترڅو په څرګنده توګه د مشتق شوي ټولګي جوړونکي څخه د والدین ټولګي جوړونکي ته زنګ ووهي، تر هغه چې دا څرګندونې د جوړونکي لخوا رامینځته شوي مثال ته اشاره ونه کړي. بهرنۍ ټولګی { باطل سلام() { سیسټم.آؤټ.پرنټ ایل این(«سلام»); } ټولګي داخلي { داخلي() { سلام(); سوپر()؛ } } }
- د jlink یوټیلټي د JMOD فایلونو کارولو پرته د چلولو وخت عکسونو جوړولو لپاره ملاتړ پلي کوي، کوم چې د JDK اندازه نږدې 25٪ کمولو ته اجازه ورکوي.
- د یو واحد "وارداتي ماډل M" بیان کارولو دوهم مسوده اضافه کړه ترڅو د ټاکل شوي ماډل لخوا صادر شوي ټول کڅوړې په یوځل وارد کړي. دا بدلون د ماډلر کتابتونونو بیا کارول خورا اسانه کوي د کتابتونونو او ټولګیو شاملولو ته اجازه ورکوي پرته لدې چې د بسته بندۍ کې د دوی ځای مشخص کړي. د مثال په توګه، د "وارداتو ماډل java.base" مشخص کول به د java.base ماډل کې شامل ټول 54 کڅوړې وارد کړي، کوم چې مخکې به په جلا توګه یادونه شوې وي ("وارداتو java.io.*"، "وارداتو java.util.*"، او نور).
- د "اصلي" میتود د ضمني اعلان شوي ټولګیو او بې نومه مثالونو څلورم لومړني پلي کول اضافه کړل، کوم چې کولی شي د عامه/جامد اعلامیو، د دلیلونو لړۍ تیرولو، او د ټولګي اعلامیې سره تړلي نورو ادارو پرته ترسره کړي. // عامه ټولګي هیلو ورلډ وه { عامه جامد باطل اصلي (سټرینګ [] آرګز) { سیسټم. آوټ.پرنټ ایل این («سلام نړۍ!»)؛ } } // اوس تاسو کولی شئ اصلي () باطل کړئ { System.out.println(«سلام، نړۍ!»); }
- د جوړښتي همغږۍ API څلورمه مسوده، کوم چې د څو تارونو غوښتنلیکونو پراختیا ساده کوي د څو کارونو سره چې په مختلفو تارونو کې روان دي د یو واحد په توګه درملنه کوي، اوس د ازموینې لپاره شتون لري.
- د KeyPairGenerator، Signature، او KeyFactory APIs اوس د ML-KEM (CRYSTALS-Kyber) او ML-DSA (CRYSTALS-Dilithium) الګوریتمونو ملاتړ کوي، کوم چې د متحده ایالاتو د معیارونو او ټیکنالوژۍ ملي انسټیټیوټ (NIST) لخوا معیاري شوي او په کوانټم کمپیوټر کې د وحشي ځواک په وړاندې مقاومت لري. دا الګوریتمونه د لاټیس تیوري ستونزو حل کولو پراساس کریپټوګرافیک میتودونه کاروي، چې د حل وخت یې په دودیزو او کوانټم کمپیوټرونو کې ورته دی.
- په ZGC کثافاتو راټولونکي کې، د غیر تولیدي عملیاتو حالت لپاره ملاتړ، کوم چې د "زاړه" او "ځوان" شیانو پروسس نه جلا کوي، لرې شوی دی. د جاوا SE 23 سره پیل کول، د ZGC تولیدي حالت ډیفالټ دی.
- د JNI (جاوا اصلي انٹرفیس) او FFM (بهرني فعالیت او حافظه) APIs کارولو په اړه اخطارونه اضافه شوي ترڅو پراختیا کونکي د API ډیټا ته محدود لاسرسي لپاره چمتو کړي ځکه چې په راتلونکي ریلیز کې د بشپړتیا حالت شاملول چې د ډیفالټ له مخې د اصلي کوډ سره تعامل منع کوي.
- د sun.misc.Unsafe ټولګي لخوا چمتو شوي د بهرني حافظې لاسرسي میتودونو (د JVM څخه بهر) کارولو پرمهال د خبرتیا فعال شوی محصول. د هېپ حافظې ته د لاسرسي او د بهرني کوډ سره د تعامل لپاره، د VarHandle API کارولو سپارښتنه کیږي. په تیرو نسخو کې، د sun.misc.Unsafe ملاتړ له پامه غورځول شوی و.
- د امنیت مدیر معلول، چې له ډیرې مودې راهیسې یې خپل تړاو له لاسه ورکړی او د براوزر پلگ ان ملاتړ پای ته رسیدو وروسته نور په تقاضا کې نه و. په جاوا ۱۷ کې د امنیت مدیر له پامه غورځول شوی دی. د امنیت مدیر کوډ پلان شوی چې په راتلونکي نسخه کې په بشپړ ډول لرې شي.
- په x32 سیسټمونو کې د 86-bit وینډوز OS پلیټ فارم ملاتړ لپاره کوډ لرې شوی. د ۳۲-بټ x۸۶ سیسټمونو لپاره د جاوا پورټ له پامه غورځول شوی او د لرې کولو لپاره ټاکل شوی دی (د ۳۲-بټ x۸۶ سیسټمونو کې د لینکس ملاتړ به له منځه یوړل شي).
سربیره پردې، موږ کولی شو د ګرافیکي انٹرفیس جاوا ایف ایکس ۲۴ سره د غوښتنلیکونو جوړولو لپاره د پلیټ فارم تازه معلومات او د نړیوال مجازی ماشین GraalVM نوې خپرونه یادونه وکړو، کوم چې په جاواسکریپټ (Node.js)، پایتون، روبي، R، د JVM لپاره هرې ژبې (جاوا، سکالا، کلوجور، کوټلین) او هغه ژبې چې د LLVM بټ کوډ تولید کیدی شي (C، C++، زنګ) کې د چلولو غوښتنلیکونو ملاتړ کوي. د JDK 24 ملاتړ کولو سربیره، د GraalVM نوې نسخه د ماشین زده کړې دندو لپاره اصلاح کول، د جاوا بایټ کوډ د ماشین کوډ کې د تالیف کولو لپاره ښه ملاتړ، او د اجرا وړ فایلونو اندازه کمولو او د تالیف وخت کمولو لپاره د SkipFlow میکانیزم شامل دي.
سرچینه: opennet.ru
