جاوا SE 15 رليز

ترقي جي ڇهن مهينن کان پوء، Oracle آزاد ڪيو ويو پليٽ فارم جاوا ايس 15 (جاوا پليٽ فارم، معياري ايڊيشن 15)، اوپن سورس OpenJDK پروجيڪٽ استعمال ڪيو ويندو آهي ريفرنس تي عمل درآمد. Java SE 15 جاوا پليٽ فارم جي پوئين رليز سان پسمانده مطابقت برقرار رکي ٿي؛ سڀ اڳ ۾ لکيل جاوا پروجيڪٽ بغير تبديلين جي ڪم ڪندا جڏهن نئين ورزن تحت لانچ ڪيو ويندو. جاوا SE 15 بلڊس انسٽال ڪرڻ لاءِ تيار (JDK، JRE ۽ سرور JRE) تيار ڪيل لينڪس (x86_64)، ونڊوز ۽ macOS لاءِ. OpenJDK پروجيڪٽ پاران تيار ڪيل حوالن تي عمل درآمد جاوا 15 GPLv2 لائسنس جي تحت مڪمل طور تي کليل ذريعو آهي، GNU ClassPath استثنا سان، تجارتي شين سان متحرڪ ڳنڍڻ جي اجازت ڏئي ٿي.

Java SE 15 هڪ عام سپورٽ رليز جي طور تي درجه بندي ڪئي وئي آهي ۽ ايندڙ رليز تائين تازه ڪاريون حاصل ڪندي رهندي. لانگ ٽرم سپورٽ (LTS) برانچ جاوا SE 11 هجڻ گهرجي، جيڪا 2026 تائين اپڊيٽ حاصل ڪندي رهندي. جاوا 8 جي پوئين LTS برانچ ڊسمبر 2020 تائين سپورٽ ڪئي ويندي. ايندڙ LTS رليز سيپٽمبر 2021 لاءِ شيڊول ڪئي وئي آهي. اچو ته توهان کي ياد ڏياريون ته جاوا 10 جي رليز سان شروع ڪندي، پروجيڪٽ هڪ نئين ترقياتي عمل ڏانهن تبديل ڪيو، نئين رليز جي ٺهڻ لاء هڪ ننڍڙو چڪر جو مطلب. نئين ڪارڪردگي ھاڻي ھڪڙي مسلسل اپڊيٽ ٿيل ماسٽر برانچ ۾ ترقي ڪئي وئي آھي، جنھن ۾ تيار ڪيل تبديليون شامل آھن ۽ جن مان شاخون شاخون آھن ھر ڇھن مھينن ۾ نئين رليز کي مستحڪم ڪرڻ لاءِ.

کان جدت جاوا 15 سگهن ٿا نشان:

  • تعمير ٿيل EdDSA (Edwards-Curve Digital Signature Algorithm) ڊجيٽل دستخط ٺاھڻ جي الگورتھم لاءِ سپورٽ آر ايف سي سي ايم ايس). تجويز ڪيل EdDSA عمل درآمد هارڊويئر پليٽ فارمن تي منحصر نه آهي، سائڊ-چينل حملن کان محفوظ آهي (سڀني حسابن جو مسلسل وقت يقيني بڻايو وڃي ٿو) ۽ ڪارڪردگي ۾ تيز آهي موجوده ECDSA عمل درآمد کان C ٻولي ۾ لکيل، ساڳئي سطح جي تحفظ سان. مثال طور، ايڊ ڊي ايس اي 126-بٽ ڪيئي سان هڪ بيضوي وکر استعمال ڪندي ECDSA سان ساڳي ڪارڪردگي ڏيکاري ٿو هڪ secp256r1 elliptic وکر ۽ هڪ 128-bit ڪي.
  • شامل ڪيو ويو سيل ٿيل طبقن ۽ انٽرفيس لاءِ تجرباتي مدد، جيڪي ٻين طبقن ۽ انٽرفيسز پاران استعمال نه ٿي ڪري سگھجن ته ان کي ورثي ۾ حاصل ڪرڻ، وڌائڻ يا ان کي ختم ڪرڻ لاءِ. سيل ٿيل ڪلاس پڻ هڪ وڌيڪ بياني طريقو مهيا ڪن ٿا سپر ڪلاس جي استعمال کي محدود ڪرڻ لاءِ رسائي موڊيفائرز جي بجاءِ، واضح طور تي لسٽ ڪرڻ جي بنياد تي، جنهن کي وڌائڻ جي اجازت ڏني وئي آهي.

    پيڪيج com.example.geometry؛

    عوامي مهربند طبقي جي شڪل
    اجازت com.example.polar.Circle،
    com.example.quad.Rectangle,
    com.example.quad.simple.Square {…}

  • شامل ڪيو ويو پوشیدہ طبقن لاءِ مدد جيڪي سڌو سنئون استعمال نه ٿي ڪري سگھجن ٿيون ٻين طبقن جي بائيٽ ڪوڊ ذريعي. پوشيده ڪلاسن جو بنيادي مقصد فريم ورڪ ۾ استعمال ڪيو وڃي ٿو جيڪي متحرڪ طور تي رن ٽائم تي ڪلاس پيدا ڪن ٿا ۽ انهن کي اڻ سڌي طرح استعمال ڪن ٿا. عڪس. اهڙن طبقن ۾ عام طور تي محدود زندگي جي چڪر هوندي آهي، تنهن ڪري انهن کي برقرار رکڻ لاءِ جامد طور تي ٺاهيل طبقن تائين رسائي جائز نه آهي ۽ صرف يادگيري جي استعمال کي وڌائيندو. پوشیدہ ڪلاس به غير معياري API جي ضرورت کي ختم ڪري ڇڏيندا آهن sun.misc.Unsafe::defineAnonymousClass، جيڪو مستقبل ۾ هٽائڻ لاءِ مقرر ڪيو ويو آهي.
  • ZGC (Z گاربيج ڪليڪٽر) گاربيج ڪليڪٽر کي مستحڪم ڪيو ويو آهي ۽ تسليم ڪيو ويو آهي جيئن وسيع استعمال لاءِ تيار آهي. ZGC غير فعال موڊ ۾ هلندي آهي، جيترو ممڪن ٿي سگهي ڪچري کي گڏ ڪرڻ جي ڪري دير کي گھٽائي ٿي (اسٽال ٽائيم جڏهن ZGC استعمال ڪرڻ وقت 10 ms کان وڌيڪ نه هجي) ۽ ڪم ڪري سگهي ٿو ٻنهي ننڍن ۽ وڏن هيپس سان، سائيز ۾ ڪيترن ئي سو ميگا بائيٽ کان وٺي ڪيترن ٽيرا بائيٽ تائين.
  • مستحڪم ۽ عام استعمال لاء تيار مليو
    ڪچرو گڏ ڪندڙ شينڊيڊيه, ڪم ڪرڻ سان گڏ گھٽ ۾ گھٽ توقف (گهٽ-روڪ-وقت گاربيج ڪليڪٽر). Shenandoah کي ريڊ هيٽ پاران تيار ڪيو ويو آهي ۽ ان جي استعمال لاءِ قابل ذڪر آهي هڪ الورورٿم جيڪو ڪچرو گڏ ڪرڻ دوران اسٽال جي وقت کي گھٽائي ٿو صاف ڪرڻ سان گڏوگڏ جاوا ايپليڪيشنن جي عمل سان. ڪچري جي ڪليڪٽر پاران متعارف ڪرايل دير جي ماپ جو اندازو لڳائي سگهجي ٿو ۽ ڍير جي سائيز تي منحصر نه آهي، يعني. 200 MB ۽ 200 GB جي هيپس لاءِ دير هڪجهڙي هوندي (ٻاهر نه اچو 50 ms کان وڌيڪ ۽ عام طور تي 10 ms اندر)؛

  • سپورٽ کي مستحڪم ڪيو ويو آهي ۽ ٻولي ۾ متعارف ڪرايو ويو آهي ٽيڪسٽ بلاڪ - اسٽرنگ لٽريلز جو هڪ نئون فارم جيڪو توهان کي اجازت ڏئي ٿو گھڻ لائين ٽيڪسٽ ڊيٽا کي سورس ڪوڊ ۾ شامل ڪرڻ کان سواءِ ڪردار کان بچڻ ۽ بلاڪ ۾ اصل ٽيڪسٽ فارميٽنگ کي محفوظ ڪرڻ جي. بلاڪ ٽن ڊبل حوالن سان ٺهيل آهي.

    مثال طور، ڪوڊ جي بدران

    اسٽرنگ html = " » +
    "\n\t" + " » +
    "\n\t\t" + " \"جاوا 1 هتي آهي!\" » +
    "\n\t" + " » +
    "\n" + " "؛

    توھان بيان ڪري سگھو ٿا:

    اسٽرنگ html = """


    »جاوا 1\
    هتي آهي!

    """؛

  • ٻيهر ڪم ڪيو Legacy DatagramSocket API. java.net.DatagramSocket ۽ java.net.MulticastSocket جي پراڻي عملن کي هڪ جديد عمل سان تبديل ڪيو ويو آهي جيڪو ڊيبگ ۽ برقرار رکڻ آسان آهي، ۽ پڻ پروجيڪٽ جي اندر ٺاهيل ورچوئل اسٽريمز سان مطابقت رکي ٿو. وڏو ڪري. موجوده ڪوڊ سان ممڪن ناانصافي جي صورت ۾، پراڻي عمل کي ختم نه ڪيو ويو آهي ۽ jdk.net.usePlainDatagramSocketImpl اختيار استعمال ڪندي فعال ٿي سگهي ٿو.
  • ٻيو تجرباتي عمل جي تجويز ڪيل نموني جي مطابقت "instanceof" آپريٽر ۾، جيڪو توهان کي اجازت ڏئي ٿو ته فوري طور تي مقامي متغير جي وضاحت ڪرڻ لاء چيڪ ڪيل قيمت تائين رسائي حاصل ڪرڻ لاء. مثال طور، توهان فوري طور تي لکي سگهو ٿا "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() طريقن، اهو ڪري سگهي ٿو انهن جي واضح تعريف کان سواءِ:

    عوامي رڪارڊ بئنڪ ٽرانزيڪشن (مقامي تاريخ جي تاريخ،
    ٻيڻو رقم
    اسٽرنگ جي وضاحت) {}

    هي اعلان خود بخود برابر ()، hashCode() ۽ toString() طريقن جي عملن کي شامل ڪندو، اضافي طور تي تعمير ڪندڙ ۽ حاصل ڪندڙ طريقن سان.

  • تجويز ڪيل فارين-ميموري رسائي API جو هڪ ٻيو ڏيک، جاوا ايپليڪيشنن کي اجازت ڏئي ٿو محفوظ ۽ موثر طريقي سان جاوا هيپ کان ٻاهر ميموري علائقن تائين رسائي حاصل ڪري نئين MemorySegment، MemoryAddress، ۽ MemoryLayout خلاصن کي هٿي وٺرائڻ سان.
  • معذور ۽ HotSpot JVM ۾ استعمال ٿيل بيسڊ لاڪنگ آپٽمائيزيشن ٽيڪنڪ کي ختم ڪيو ويو ته جيئن لاڪنگ اوور هيڊ کي گھٽايو وڃي. هي ٽيڪنڪ جديد سي پي يوز پاران مهيا ڪيل ايٽمي هدايتن سان سسٽم تي پنهنجي مطابقت وڃائي چڪي آهي، ۽ ان جي پيچيدگي جي ڪري برقرار رکڻ لاء تمام گهڻي محنت آهي.
  • اعلان ڪيو پراڻي ميڪانيزم RMI چالو ڪرڻ، جيڪو مستقبل جي رليز ۾ هٽايو ويندو. اهو نوٽ ڪيو ويو آهي ته RMI ايڪٽيويشن پراڻو آهي، جاوا 8 ۾ هڪ اختيار جي درجي ڏانهن منتقل ڪيو ويو آهي ۽ تقريبا ڪڏهن به جديد عمل ۾ استعمال نه ڪيو ويو آهي.
  • حذف ٿيل جاوا اسڪرپٽ انجڻ گينڊو، جنهن کي جاوا SE 11 ۾ ختم ڪيو ويو.
  • هٽايو ويو سولاريس او ايس ۽ اسپارڪ پروسيسرز لاءِ بندرگاهن (Solaris/SPARC، Solaris/x64 ۽ Linux/SPARC). انهن بندرگاهن کي هٽائڻ سان ڪميونٽي کي نئين OpenJDK خاصيتن جي ترقي کي تيز ڪرڻ جي اجازت ڏيندو، بغير وقت ضايع ڪرڻ کان سواء سولاريس ۽ اسپارڪ مخصوص خاصيتن کي برقرار رکڻ.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو