جاوا SE 16 خوشې کول

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

جاوا SE 16 د عمومي ملاتړ ریلیز په توګه طبقه بندي شوی او تر راتلونکي خوشې کیدو پورې به تازه معلومات ترلاسه کولو ته دوام ورکړي. د اوږدې مودې ملاتړ (LTS) څانګه باید جاوا SE 11 وي، کوم چې به تر 2026 پورې تازه معلومات ترلاسه کولو ته دوام ورکړي. راتلونکی LTS خپرونه د سپتمبر 2021 لپاره ټاکل شوې. اجازه راکړئ تاسو ته یادونه وکړو چې د جاوا 10 په خپرولو سره پیل کول، پروژه نوي پراختیایي پروسې ته بدله شوې، د نوي ریلیزونو رامینځته کولو لپاره لنډ دوره معنی لري. نوي فعالیت اوس په دوامداره توګه تازه شوي ماسټر برانچ کې رامینځته شوی ، کوم چې چمتو شوي بدلونونه پکې شامل دي او له هغې څخه څانګې په هرو شپږو میاشتو کې د نوي ریلیزونو ثبات لپاره شاخ کیږي.

د نوي ریلیز لپاره چمتووالي کې ، پراختیا د مرکوریل نسخه کنټرول سیسټم څخه Git او GitHub همکارۍ پراختیا پلیټ فارم ته لیږدول شوې. مهاجرت تمه کیږي چې د ذخیره کولو عملیاتو فعالیت ته وده ورکړي، د ذخیره کولو موثریت زیات کړي، د پروژې په ټول تاریخ کې بدلونونو ته لاسرسی چمتو کړي، د کوډ بیاکتنې لپاره مالتړ ته وده ورکړي، او د کار فلو اتومات کولو لپاره APIs فعال کړي. سربیره پردې ، د Git او GitHub کارول پروژه د پیل کونکو او پراختیا کونکو لپاره خورا په زړه پوري کوي چې د Git سره عادت شوي.

په جاوا 16 کې نوې ځانګړتیاوې په لاندې ډول دي:

  • د ویکتور API پلي کولو سره تجربه لرونکي ماډل jdk.incubator.vector اضافه شوی، کوم چې د ویکتور حسابونو لپاره دندې چمتو کوي چې په x86_64 او AArch64 پروسیسرونو کې د ویکتور لارښوونو په کارولو سره ترسره کیږي او عملیات ته اجازه ورکوي چې په یوځل څو ارزښتونو (SIMD) ته پلي شي. په HotSpot JIT کمپیلر کې د سکیلر عملیاتو د اتوماتیک ویکتور کولو لپاره چمتو شوي ظرفیتونو برعکس، نوی API تاسو ته اجازه درکوي په واضح ډول د موازي معلوماتو پروسس کولو لپاره ویکٹریزیشن کنټرول کړئ.
  • په C++ کې لیکل شوي JDK او VM HotSpot کوډ اجازه لري چې د C++ 14 مشخصاتو کې معرفي شوي ځانګړتیاوې وکاروي. مخکې، C++ 98/03 معیارونو ته اجازه ورکړل شوې وه.
  • ZGC (Z کثافات راټولونکی)، چې په غیر فعال حالت کې کار کوي او د امکان تر حده د کثافاتو راټولولو له امله ځنډ کموي، پرته له دې چې د غوښتنلیک تارونو مخه ونیسي په موازي ډول د تارونو سټیکونو پروسس کولو وړتیا اضافه کړي. ZGC اوس یوازې هغه کار لري چې تعلیق ته اړتیا لري، کوم چې دوامداره ځنډونه لري، معمولا د څو سوو مایکرو ثانیو څخه زیات نه وي.
  • د ساکټ چینل، ServerSocketChannel او java.nio.channels ټولګیو ته د یونیکس ساکټونو (AF_UNIX) لپاره ملاتړ اضافه شوی.
  • یو بندر د معیاري C کتابتون مسل سره د لینکس توزیع الپین لپاره پلي شوی ، کوم چې د کانټینرونو ، مایکرو خدماتو ، بادل او سرایت شوي سیسټمونو لپاره په چاپیریال کې مشهور دی. په داسې چاپیریال کې وړاندیز شوی بندر تاسو ته اجازه درکوي د جاوا پروګرامونه لکه منظم غوښتنلیکونه پرمخ بوځي. سربیره پردې ، د jlink په کارولو سره ، تاسو کولی شئ ټول غیر کارول شوي ماډلونه لرې کړئ او د غوښتنلیک چلولو لپاره کافي لږترلږه چاپیریال رامینځته کړئ ، کوم چې تاسو ته اجازه درکوي د غوښتنلیک ځانګړي کمپیکٹ عکسونه رامینځته کړئ.
  • د لچکدار میټا اسپیس میکانیزم پلي شوی ، د JVM HotSpot کې د ټولګي میټاډاټا (میټا اسپیس) لخوا نیول شوي حافظې تخصیص او بیرته راګرځولو عملیات غوره کوي. د ایلاسټیک میټا اسپیس کارول د حافظې ټوټه کول کموي ، د ټولګي لوډر سر سر ټیټوي ، او همدارنګه د اوږدمهاله سرور غوښتنلیکونو فعالیت باندې ګټور اغیزه لري ځکه چې عملیاتي سیسټم ته د نه کارول شوي ټولګي میټاډاټا لخوا نیول شوي حافظې ګړندي بیرته راستنیږي. د ټولګیو له پورته کولو وروسته د حافظې خوشې کولو حالت غوره کولو لپاره، "-XX:MetaspaceReclaimPolicy=(balanced|aggressive| none)" اختیار وړاندې کیږي.
  • د وینډوز سیسټمونو لپاره د JDK بندر اضافه شوی چې د AArch64 جوړښت پراساس پروسیسرونو سره په هارډویر کې چلیږي.
  • د بهرني - حافظې لاسرسي API دریمه لید وړاندیز شوی ، د جاوا غوښتنلیکونو ته اجازه ورکوي چې د نوي MemorySegment ، MemoryAddress ، او MemoryLayout خلاصونو په مینځلو سره د جاوا له هپ څخه بهر د حافظې سیمو ته په خوندي او مؤثره توګه لاسرسی ومومي.
  • یو تجربه لرونکی بهرني لینکر API پلي شوی ، له جاوا څخه اصلي کوډ ته لاسرسی چمتو کوي. د بهرني-میموري API سره یوځای، د پروګرام کولو نوی انٹرفیس د دودیزو ګډ کتابتونونو په اړه د ریپرونو جوړول خورا اسانه کوي.
  • د jpackage یوټیلیټ اضافه شوی، کوم چې تاسو ته اجازه درکوي د ځان سره د جاوا غوښتنلیکونو لپاره کڅوړې جوړې کړئ. افادیت د JavaFX څخه د javapackager پر بنسټ والړ دی او تاسو ته اجازه درکوي په مختلفو پلیټ فارمونو کې اصلي بڼې جوړې کړئ (msi او exe د وینډوز لپاره، pkg او dmg د MacOS لپاره، deb او rpm د لینکس لپاره). په کڅوړو کې ټول اړین انحصارونه شامل دي.
  • د ټولو JDK داخلي سخت انکیپسول د ډیفالټ لخوا فعال شوی ، د جدي APIs لکه sun.misc.Unsafe استثنا سره. د "--غیرقانوني لاسرسي" اختیار ارزښت اوس د ډیفالټ لخوا د "اجازې" پرځای "انکار" ته ټاکل شوی، کوم چې د ډیری داخلي ټولګیو، میتودونو او ساحو ته د لاسرسي لپاره د کوډ هڅې بندوي. د محدودیت څخه د تیریدو لپاره، د "غیرقانوني-لاسرسۍ = اجازه" اختیار وکاروئ.
  • د "انسټانس آف" آپریټر کې د نمونې میچ کولو پلي کول ثبات لري ، کوم چې تاسو ته اجازه درکوي سمدلاسه محلي متغیر تعریف کړئ ترڅو چک شوي ارزښت ته راجع شي. د مثال په توګه، تاسو کولی شئ سمدلاسه "if (obj instanceof String s && s.length() > 5) {.. s.contains(..) ..}" پرته له دې چې په واضح ډول د "String s = (String) obj" تعریف کړئ. و: که (د ګروپ مثال) { ګروپ ګروپ = (ګروپ) اعتراض؛ var entries = group.getEntries(); } اوس تاسو کولی شئ پرته له دې چې "د ګروپ ګروپ = (ګروپ) اعتراض" تعریف کړئ: که (د ګروپ د ډلې اعتراض مثال) { var entries = group.getEntries(); }
  • د "ریکارډ" کلیدي کلمې پلي کول ثبات لري، د ټولګي تعریفونو لپاره یو کمپیکٹ فارم چمتو کوي چې په واضح ډول د ټیټ کچې مختلف میتودونو لکه equals()، hashCode() او toString() تعریف کولو اړتیا له مینځه وړي چیرې چې ډیټا ذخیره کیږي یوازې په ساحو کې. کوم چې دا بدلون نه کوي. کله چې یو ټولګی د مساواتو ()، hashCode() او toString() میتودونو معیاري تطبیق کاروي، دا کولی شي د دوی واضح تعریف پرته ترسره کړي: د عامه ریکارډ بانک لیږد (د محلي نیټې نیټه، دوه برابره اندازه، د سټینګ توضیح) {}

    دا اعالمیه به په اتوماتيک ډول د جوړونکي او ترلاسه کونکي میتودونو سربیره د مساواتو() ، هش کوډ() او toString() میتودونو پلي کول اضافه کړي.

  • دوهمه مسوده د سیل شوي ټولګیو او انٹرفیسونو لپاره وړاندیز شوې چې د نورو ټولګیو او انٹرفیسونو لخوا نشي کارول کیدی د میراث کولو ، غزولو یا پلي کولو لپاره. مهر شوي ټولګي د لاسرسي ترمیم کونکو په پرتله د سوپر کلاس کارولو محدودولو لپاره خورا اعلاناتي لاره هم چمتو کوي ، د تمدید لپاره اجازه ورکړل شوي فرعي ټولګیو په څرګند ډول لیست کولو پراساس. بسته com.example.geometry; د عامه مهر شوي ټولګي شکل اجازه com.example.polar.Circle, com.example.quad.Rectangle, com.example.quad.simple.Square {…}

سرچینه: opennet.ru

Add a comment