جاوا SE 14 رليز

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

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

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

  • شامل ڪيل تجرباتي سپورٽ نموني جي مطابقت "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() طريقن جي عملن کي شامل ڪندو، اضافي طور تي تعمير ڪندڙ ۽ حاصل ڪندڙ طريقن سان.

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

    var لاگ = سوئچ (واقعو) {
    ڪيس PLAY -> "صارف پلے بٽڻ کي متحرڪ ڪيو آهي"؛
    ڪيس اسٽاپ، روڪيو -> "استعمال ڪندڙ کي وقف جي ضرورت آهي"؛
    ڊفالٽ -> {
    اسٽرنگ پيغام = event.toString();
    LocalDateTime now = LocalDateTime.now();
    حاصل ڪريو "اڻڄاتل واقعو" + پيغام +
    » لاگ آن » + هاڻي؛
    }
    };

  • وسيع تجرباتي حمايت ٽيڪسٽ بلاڪ - اسٽرنگ لٽريلز جو هڪ نئون فارم جيڪو توهان کي اجازت ڏئي ٿو گھڻ لائين ٽيڪسٽ ڊيٽا کي سورس ڪوڊ ۾ شامل ڪرڻ کان سواءِ ڪردار کان بچڻ ۽ بلاڪ ۾ اصل ٽيڪسٽ فارميٽنگ کي محفوظ ڪرڻ. بلاڪ ٽن ڊبل حوالن سان ٺهيل آهي. جاوا 14 ۾، ٽيڪسٽ بلاڪ هاڻي فرار جي ترتيب "\s" کي سپورٽ ڪن ٿا هڪ واحد اسپيس جي وضاحت ڪرڻ لاءِ ۽ "\" ايندڙ لڪير سان ڳنڍڻ لاءِ (نئين لائنن کي نظر انداز ڪرڻ جڏهن توهان کي تمام ڊگهي لائن پرنٽ ڪرڻ جي ضرورت آهي). مثال طور، ڪوڊ جي بدران

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

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

    اسٽرنگ html = """


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

    """؛

  • تشخيص جي معلومات جو مواد جڏهن استثنا ٿئي ٿي ته وڌايو ويو آهي نيل پوائنٽر حاصل ڪرڻ. جڏهن ته اڳ ۾ غلطي جو پيغام صرف لائن نمبر ڏانهن اشارو ڪيو ويو آهي، هاڻي اهو تفصيل آهي ته ڪهڙو طريقو استثنا سبب آهي. ترقي يافته تشخيص في الحال فعال آهن جڏهن "-XX:+ShowCodeDetailsInExceptionMessages" پرچم سان شروع ڪيو ويو آهي. مثال طور، جڏهن هن پرچم کي بيان ڪيو وڃي، لڪير ۾ استثنا

    var نالو = user.getLocation().getCity().getName();

    هڪ پيغام جي نتيجي ۾ ٿيندو

    سلسلي ۾ استثنا "main" java.lang.NullPointerException: "Location.getCity()" کي سڏ نه ٿو ڪري سگھجي
    ڇاڪاڻ ته "User.getLocation()" جي واپسي جي قيمت null آهي
    NullPointerExample.main تي(NullPointerExample.java:5):5)

    جيڪو اهو واضح ڪري ٿو ته Location.getCity() طريقو نه سڏيو ويو آهي ۽ User.getLocation() null واپس آيو.

  • لاڳو ٿيل jpackage افاديت جو هڪ ڏيک، جيڪو توهان کي اجازت ڏئي ٿو پيڪيجز ٺاهڻ لاءِ پاڻ ۾ شامل جاوا ايپليڪيشنون. يوٽيلٽي JavaFX کان javapackager تي مبني آهي ۽ توهان کي مختلف پليٽ فارمن (MSI ۽ exe Windows لاءِ، pkg ۽ dmg لاءِ macOS، deb ۽ rpm لاءِ Linux، deb ۽ rpm) جي فارميٽ ۾ پيڪيجز ٺاهڻ جي اجازت ڏئي ٿي. پيڪيجز ۾ سڀ گهربل انحصار شامل آهن.
  • G1 گندگي ڪليڪٽر ڏانهن شامل ڪيو ويو هڪ نئون ياداشت مختص ڪرڻ وارو ميڪانيزم جيڪو اڪائونٽ ۾ رکي ٿو وڏين سسٽم تي ڪم ڪرڻ جي خاصيتن کي استعمال ڪندي فن تعمير NUMA. نئون ميموري مختص ڪندڙ "+XX:+UseNUMA" پرچم استعمال ڪندي فعال ڪيو ويو آهي ۽ NUMA سسٽم تي ڪارڪردگي بهتر ڪري سگهي ٿو.
  • شامل ڪيو ويو JFR (JDK فلائيٽ رڪارڊر) واقعن جي اڏام تي نگراني لاءِ API، مثال طور مسلسل نگراني کي منظم ڪرڻ لاءِ.
  • شامل ڪيو ويو jdk.nio.mapmode ماڊل، جيڪو پيش ڪري ٿو نوان موڊس (READ_ONLY_SYNC, WRITE_ONLY_SYNC) ٺاهڻ لاءِ ميپ ٿيل بائيٽ بفرز (MappedByteBuffer) ريفرنسنگ غير وولٽائل ميموري (NVM).
  • لاڳو ٿيل فارين-ميموري رسائي API جو هڪ ڏيک، جاوا ايپليڪيشنن کي اجازت ڏئي ٿي محفوظ ۽ موثر طريقي سان جاوا هيپ کان ٻاهر ميموري وارن علائقن تائين رسائي جي نئين MemorySegment، MemoryAddress، ۽ MemoryLayout خلاصن کي هٿي وٺرائڻ سان.
  • اعلان ڪيو سولاريس OS ۽ SPARC پروسيسرز (Solaris/SPARC، Solaris/x64 ۽ Linux/SPARC) لاءِ ختم ٿيل بندرگاهن کي مستقبل ۾ انهن بندرگاهن کي هٽائڻ جي نيت سان. انهن بندرگاهن کي ختم ڪرڻ ڪميونٽي کي اجازت ڏيندو ته نئين OpenJDK خاصيتن جي ترقي کي تيز ڪرڻ کان سواءِ سولاريس- ۽ اسپارڪ-مخصوص خصوصيتن کي برقرار رکڻ ۾ وقت ضايع ڪرڻ.
  • حذف ٿيل CMS (Concurrent Mark Sweep) گاربيج ڪليڪٽر، جنهن کي ٻه سال اڳ پراڻو نشان لڳايو ويو هو ۽ ان کي برقرار نه رکيو ويو هو (CMS گهڻو اڳ G1 گاربيج ڪليڪٽر طرفان تبديل ڪيو ويو هو). ان کان علاوه، اعلان ڪيو ParallelScavenge ۽ SerialOld گاربيج ڪليڪشن الگورتھم جي ميلاپ جي استعمال کي رد ڪيو ويو (اختيارن سان هلايو "-XX:+UseParallelGC -XX:-UseParallelOldGC").
  • ZGC (Z گاربيج ڪليڪٽر) گاربيج ڪليڪٽر لاءِ تجرباتي سپورٽ macOS ۽ ونڊوز پليٽ فارمن تي مهيا ڪئي وئي آهي (اڳ ۾ صرف لينڪس تي سپورٽ ڪئي وئي). ZGC غير فعال موڊ ۾ هلندي آهي، جيترو ممڪن ٿي سگهي ڪچري کي گڏ ڪرڻ جي ڪري دير کي گھٽائي ٿي (اسٽال ٽائيم جڏهن ZGC استعمال ڪرڻ وقت 10 ms کان وڌيڪ نه هجي) ۽ ڪم ڪري سگهي ٿو ٻنهي ننڍن ۽ وڏن هيپس سان، سائيز ۾ ڪيترن ئي سو ميگا بائيٽ کان وٺي ڪيترن ٽيرا بائيٽ تائين.
  • هٽايو ويو Pack200 الگورتھم استعمال ڪندي JAR فائلن کي دٻائڻ لاءِ ٽول ڪٽ ۽ API.

جو ذريعو: opennet.ru

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