شامل ڪيل تجرباتي سپورٽ نموني جي مطابقت "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" کي سپورٽ ڪن ٿا هڪ واحد اسپيس جي وضاحت ڪرڻ لاءِ ۽ "\" ايندڙ لڪير سان ڳنڍڻ لاءِ (نئين لائنن کي نظر انداز ڪرڻ جڏهن توهان کي تمام ڊگهي لائن پرنٽ ڪرڻ جي ضرورت آهي). مثال طور، ڪوڊ جي بدران
تشخيص جي معلومات جو مواد جڏهن استثنا ٿئي ٿي ته وڌايو ويو آهي نيل پوائنٽر حاصل ڪرڻ. جڏهن ته اڳ ۾ غلطي جو پيغام صرف لائن نمبر ڏانهن اشارو ڪيو ويو آهي، هاڻي اهو تفصيل آهي ته ڪهڙو طريقو استثنا سبب آهي. ترقي يافته تشخيص في الحال فعال آهن جڏهن "-XX:+ShowCodeDetailsInExceptionMessages" پرچم سان شروع ڪيو ويو آهي. مثال طور، جڏهن هن پرچم کي بيان ڪيو وڃي، لڪير ۾ استثنا
var نالو = user.getLocation().getCity().getName();
هڪ پيغام جي نتيجي ۾ ٿيندو
سلسلي ۾ استثنا "main" java.lang.NullPointerException: "Location.getCity()" کي سڏ نه ٿو ڪري سگھجي
ڇاڪاڻ ته "User.getLocation()" جي واپسي جي قيمت null آهي
NullPointerExample.main تي(NullPointerExample.java:5):5)
لاڳو ٿيل فارين-ميموري رسائي 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.