JavaRush /جاوا بلاگ /Random-SD /جاوا 12 هتي آهي: نئون ڇا آهي؟

جاوا 12 هتي آهي: نئون ڇا آهي؟

گروپ ۾ شايع ٿيل
تنهن ڪري، جاوا 12 نمبر تي ظاهر ٿيو. ۽ جيتوڻيڪ هي هڪ LTS رليز ناهي (يعني ڊگهي مدت جي مدد نه آهي، نه اها رليز جيڪا گهڻي وقت تائين سپورٽ ڪئي ويندي. ورجن 11 کي پهريون LTS رليز سمجهيو ويندو آهي اٺ سان. سال سپورٽ جي مدت )، دلچسپ شيون ظاهر ٿيو ان ۾ تازه ڪاريون. اچو ته انهن مان سڀ کان اهم تي نظر. ياد رهي ته جاوا ۾، تبديلي جون تجويزون مختصر طور تي جپس (JDK وڌائڻ واري تجويز کان) آهن. جاوا 12 هتي آهي: نئون ڇا آهي؟  - 1

سڀ کان وڌيڪ دلچسپ جيپ جي JDK 12

189: Shenandoah: A Low-Pause-Time گاربيج ڪليڪٽر (Experimental) گاربيج ڪليڪٽر، Shenandoah، ھڪڙو نئون الگورٿم استعمال ڪري ٿو جيڪو ھلندڙ جاوا ٿريڊز سان گڏ ھڪ ئي وقت صاف ڪرڻ سان رن ٽائم گھٽائي ٿو. ھن حالت ۾، شينڊواھ ۾ وقفي جو وقت ساڳيو ھوندو، قطع نظر ڍڳ جي سائيز جي. ڪجهه سببن جي ڪري، Oracle Sheandoah کي پنهنجي "سرڪاري" رليز جي تعمير ۾ شامل نه ڪيو، ان حقيقت جي باوجود ته ڊولپر هن خاصيت کي نئين رليز ۾ سڀ کان اهم سمجهي رهيا آهن. تنهن ڪري جيڪڏهن توهان ڪوشش ڪرڻ جو منصوبو ٺاهيو ته ترقي يافته گاربيج ڪليڪٽر، توهان کي استعمال ڪرڻ جي ضرورت آهي ٽئين پارٽي تعميرات، جهڙوڪ Azul . 230: Microbenchmark Suite Microbenchmark ھڪڙو microbenchmark آھي جيڪو ڪجھ ننڍڙن عنصر جي ڪارڪردگي کي ماپي ٿو. جاوا ۾، اهي لکيل آهن ۽ JMH فريم ورڪ استعمال ڪندي هلائي رهيا آهن. نسخو 12 کان وٺي، JMH JDK ۾ شامل ڪيو ويو آھي، ۽ اڳ ۾ ئي ٽيسٽ آھن جيڪي ان ۾ لکيل آھن، جيڪي ڊولپرز لاء زندگي آسان بڻائي ٿي. 325: سوئچ ايڪسپريسشن (پريويو) سوئچ بيان سان اظهار لکڻ جو هڪ نئون روپ. مضمون جو صفحو مثالي ڪوڊ مهيا ڪري ٿو روايتي سوئچ استعمال ڪندي، جتي وقفي جو مسلسل استعمال ان کي غير ضروري طور تي لفظي بڻائي ٿو، بار بار بي ترتيب غلطين جي ڪري.
switch (day) {
    case MONDAY:
    case FRIDAY:
    case SUNDAY:
        System.out.println(6);
        break;
    case TUESDAY:
        System.out.println(7);
        break;
    case THURSDAY:
    case SATURDAY:
        System.out.println(8);
        break;
    case WEDNESDAY:
        System.out.println(9);
        break;
}
تازه ڪاري جا ليکڪ تجويز ڪن ٿا ته سوئچ ليبل جو نئون فارم متعارف ڪرايو ”ڪيس L ->“ واضح طور تي ظاهر ڪرڻ لاءِ ته صرف ليبل جي ساڄي طرف ڪوڊ تي عمل ڪيو ويندو جيڪڏهن هي ليبل مناسب آهي. ان ڪري، مٿي ڏيکاريل ڪوڊ کي نئين نحو استعمال ڪندي خاص طور تي مختصر ڪري سگھجي ٿو:
switch (day) {
    case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
    case TUESDAY                -> System.out.println(7);
    case THURSDAY, SATURDAY     -> System.out.println(8);
    case WEDNESDAY              -> System.out.println(9);
}
334: JVM Constants API مسلسل تلاءَ ۾ نام نهاد لوڊبلبل مستقل شامل آهن. اهي قدر آهن، مثال طور قسم جي String يا ڪنهن به ابتدائي قسم جي، گڏوگڏ رن-ٽائم نموني، جهڙوڪ ڪلاس ۽ طريقا. جڏهن ڪلاس فائلن سان ڪم ڪري رهيا آهن، پروگرامر استعمال ڪرڻ لاء آسان اوزار مان فائدو وٺندا آهن جيڪي لوڊ ڪرڻ جي قابل ثابت ڪن ٿا. هن جيپ جي ليکڪن هن مسئلي کي حل ڪرڻ شروع ڪيو، نئين قدر تي ٻڌل قسم جي علامتي لنڪس متعارف ڪرايو، جن مان هر هڪ مخصوص قسم جي ثابتين کي بيان ڪندو. جدت ڪوڊ . 340: هڪ AArch64 پورٽ، نه ٻه هي پيچيده نالو هڪ مسئلي جو حل لڪائي ٿو جيڪو جاوا 9 ۾ پيدا ٿيو، جڏهن 64-bit ARM بندرگاهن Oracle ۽ aarch64 کان Red Hat هڪ ئي وقت کٽ ۾ ظاهر ٿيا. ان کان علاوه، اڳ ۾ ئي JDK 11 جي رليز جي وقت تي، جيتوڻيڪ Oracle خود Oracle بندرگاهن جي 64-bit ورزن جي حمايت نه ڪئي. تنهن ڪري هاڻي 64-bit Oracle بندرگاهن کي هٽايو ويو آهي، ڇڏيندي 32-bit ARM32، ۽ 64-bit، وڌيڪ پيداوار، aarch64. 341: ڊفالٽ سي ڊي ايس آرڪائيوز هڪ تمام سٺي تازه ڪاري جيئن ته اها واقعي ايپليڪيشن لانچ کي تيز ڪري ٿي. اهو ڪو راز ناهي ته جڏهن جاوا ايپليڪيشن شروع ٿئي ٿي، طبقن جو هڪ وڏو تعداد لوڊ ٿيڻ شروع ٿئي ٿو، ۽ اهو هڪ ڊگهو عمل آهي. سي ڊي ايس جو مطلب آهي ڪلاس ڊيٽا شيئرنگ، ۽ هي فنڪشن توهان کي انهن سڀني ڪلاسن کي پيڪ ڪرڻ جي اجازت ڏئي ٿو جيڪو شروع ۾ شروع ڪيو ويو هڪ خاص ڪلاس ڊيٽا شيئرنگ آرڪائيو ۾، انهن ساڳين ڪلاسن جي ڊفالٽ لسٽ کي استعمال ڪندي. نتيجي طور، ايپليڪيشن لانچ جي رفتار خاص طور تي وڌي ٿي. 344: Abortable Mixed Collection for G1 G1 ھڪڙو گاربيج ڪليڪٽر آھي جيڪو JDK 9 ۾ مکيه گاربيج ڪليڪٽر بڻجي ويو، Parallel GC جي جاءِ تي. جاوا 10 ۾، G1 ڪيترن ئي موضوعن ۾ ڪچرو گڏ ڪرڻ سکيو. بهرحال، هرڪو پنهنجي ڪم سان خوش نه هو؛ بنيادي مسئلن مان هڪ ڊگهو وقفو هو. هاڻي انهن کي منسوخ ڪري سگهجي ٿو. G1، پروگرام جي رويي جي تجزيي جي بنياد تي، ڪم جي مقدار کي طئي ڪري ٿو، ۽ پوء گڏ ڪري ٿو "زنده" شين کي گڏ ڪرڻ جي سيٽ ۾ جيستائين اهو سڀ ڪجهه گڏ نه ڪري، بغير روڪيو. گهڻو ڪري G1 ڪم جي رقم جي حساب سان ياد ڪيو ۽ تمام ڊگهو ڪم ڪيو. هڪ دفعو jep-344 لاڳو ٿئي ٿو، G1 کي تبديل ڪري سگھي ٿو وڌندڙ گندگي گڏ ڪرڻ لاءِ ۽ جيڪڏھن ايندڙ قدم کي پورو ٿيڻ ۾ وڌيڪ وقت لڳي ٿو ته مناسب آھي، اھو قدم ختم ڪري سگھجي ٿو. 346: G1 مان فوري طور تي غير استعمال ٿيل ڪميٽيڊ ياداشت واپس ڪريو ۽ مٿي بيان ڪيل G1 گڏجاڻي جي ڪيمپ ۾ ڪجھ وڌيڪ تازه ڪاريون. ڪڏهن ڪڏهن ائين به ٿيندو هو ته اتي جاوا هيپ ميموري جو هڪ گروپ هوندو هو، پر ڪنهن به ان کي استعمال نه ڪيو هو، هي ياداشت. جاوا 12 ۾، توهان هاڻي ڪري سگهو ٿا "واپس" غير فعال ياداشت کي آپريٽنگ سسٽم ڏانهن. اڳي، يادگيري ڇڏڻ لاءِ G1 حاصل ڪرڻ تمام گهٽ هوندو هو، پر هاڻي هر شي کي آسان ڪيو ويو آهي. نئين خصوصيت سان، ايپليڪيشن کي غير فعال طور بيان ڪيو ويو آهي جيڪڏهن آخري تعمير کان وقفو ختم ٿي چڪو آهي ۽ ڪو به سمورو چڪر نه آهي. ٻي صورتحال اها آهي جيڪڏهن يا getloadavg() فنڪشن، جيڪو ڪجهه وقت لاءِ مانيٽر ڪيو ويو آهي، ڏيکاري ٿو هڪ لوڊ هيٺ ڏنل سيٽ قابل قبول حد کان. جيڪڏهن ٻن واقعن مان هڪ ٿئي ٿي، جزوي ڪچرو گڏ ڪرڻ شروع ٿئي ٿو. جاوا 12 وٽ ڇا ناهي: Raw String Literals ڪيترائي ڊولپر هن فيچر ۾ دلچسپي وٺندا هئا، پر اهو هن رليز ۾ ڪڏهن به ظاهر نه ٿيو. ان جي ليکڪن فيصلو ڪيو ته اهو اڃا تائين ڪم جي ضرورت آهي. تنهن ڪري، اسان اميد ڪرڻ جي جرئت ڪريون ٿا ته اسٽرنگ لٽريلز سان آسان ڪم لاءِ هڪ فنڪشن جاوا جي ايندڙ ورزن مان هڪ ۾ ظاهر ٿيندو. خام اسٽرنگ لٽريلز لاءِ سپورٽ توهان کي اجازت ڏئي ٿي ته توهان کي ٻولي جي قطع نظر اسٽرنگ معلومات سان ڪم ڪرڻ جي. اهو بچاء جي ضرورت کي ختم ڪري ٿو. خاص طور تي ڪارائتو باقاعده اظهار ۾، جتي پٺتي سليش وڏي پيماني تي استعمال ڪيا ويا آهن، ۽ ونڊوز-پاٿ ۾، جتي پٺتي سليش استعمال ڪيا ويندا آهن حد بندي ڪندڙ. اهو آهي، اهڙين اڏاوتن کان بچڻ لاء: C: \\My\\Test\\Pack\\
هر پروگرامر اڪثر پنهنجي ڪم ۾ هڪ يا ٻي مشڪل سان منهن ڏئي ٿو. ڪڏهن ڪڏهن اهي ڊولپر جي ناانصافي سان لاڳاپيل آهن، پر ڪڏهن ڪڏهن خود اوزار جي عيب سان. جاوا هڪ عظيم ٻولي آهي، پر اهو مڪمل کان پري آهي. ٿي سگهي ٿو ته توهان اڳ ۾ ئي جاوا ۾ ڪجهه محسوس ڪيو آهي ۽ ڄاڻو ٿا ته توهان پنهنجي "ٽول" (ٻولي) ۾ ڇا تبديل ڪرڻ چاهيو ٿا؟ تبصرن ۾ حصيداري ڪريو!

نتيجا

جاوا 12 ۾ ڪوبه انقلاب نه هو. تنهن هوندي به، ڪو به ان جي رٿابندي ڪئي. بهرحال، ڪيترن ئي جدت جو مقصد ايپليڪيشنن جي آپريشن کي بهتر ڪرڻ ۽ ڪم کي تيز ڪرڻ آهي، جيڪا سٺي خبر آهي. رستي ۾، IDEA اڳ ۾ ئي JDK 12 کي سپورٽ ڪري ٿو، تنهنڪري توهان ڪوشش ڪري سگهو ٿا ان جي صلاحيتن کي. يقينن، ڪجھ تازه ڪاريون سڌو سنئون متاثر ڪن ٿيون شروعات ڪندڙن کي، جيتوڻيڪ اھي جيڪي صرف JavaRush سکڻ شروع ڪيا آھن سي نئين سوئچ سان راند ڪري سگھن ٿا (--enable-preview پرچم کي ترتيب ڏيڻ کان پوء).
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION