جاوا SE 23 ۽ OpenJDK 23 جاري ڪيا ويا

ڇهن مهينن جي ترقيءَ کان پوءِ، Oracle شايع ڪيو Java SE 23 پليٽ فارم (Java Platform, Standard Edition 23)، جيڪو اوپن سورس OpenJDK پروجيڪٽ کي ريفرنس تي عمل درآمد طور استعمال ڪري ٿو. ڪجھ پراڻن خصوصيتن کي ختم ڪرڻ جي استثنا سان، جاوا SE 23 جاوا پليٽ فارم جي پوئين رليز سان پسمانده مطابقت برقرار رکي ٿو - سڀ کان پهريان لکيل جاوا پروجيڪٽ بغير تبديلين جي ڪم ڪندا جڏهن نئين ورزن تحت هلندا. جاوا SE 22 (JDK، JRE ۽ Server JRE) جون تيار ڪرڻ لاءِ تيار ڪيل عمارتون لينڪس (x86_64، AArch64)، ونڊوز (x86_64) ۽ macOS (x86_64، AArch64) لاءِ تيار ڪيون ويون آهن. OpenJDK پروجيڪٽ پاران ترقي ڪئي وئي، جاوا 23 ريفرنس تي عمل درآمد مڪمل طور تي کليل ذريعو آهي GPLv2 لائسنس جي تحت، GNU ClassPath استثنا سان، تجارتي شين سان متحرڪ ڳنڍڻ جي اجازت ڏئي ٿي.

Java SE 23 هڪ باقاعده سپورٽ رليز جي طور تي درجه بندي ڪئي وئي آهي ۽ ايندڙ رليز تائين تازه ڪاريون حاصل ڪرڻ جاري رکندي. لانگ ٽرم سپورٽ (LTS) برانچ Java SE 21 يا Java SE 17 هجڻ گهرجي، جيڪا 2031 ۽ 2029 تائين اپڊيٽ حاصل ڪندي، (عام طور تي 2028 ۽ 2026 تائين دستياب هوندي). جاوا SE 8 جي LTS برانچ لاءِ وڌايل سپورٽ 2030 تائين، ۽ Java SE 11 تائين 2032 تائين جاري رھندي.

جاوا SE ۾ تجويز ڪيل 23 جدت مان:

  • ZGC (جنريشن Z گاربيج ڪليڪٽر) جي گاربيج ڪليڪٽر جي آپريشن جو جنريٽو موڊ ڊفالٽ طور تي فعال ڪيو ويو آهي، ”پراڻي“ ۽ ”نوجوان“ شين جي الڳ پروسيسنگ استعمال ڪندي، جيڪا تازي ٺاهيل شين کي ٿوري عمر سان صاف ڪرڻ جي ڪارڪردگيءَ کي وڌائي ٿي. Generational ZGC استعمال ڪرڻ سان وسيلا مختص ڪرڻ دوران اسٽالن جو خطرو گھٽجي ٿو، ڪچرو گڏ ڪرڻ دوران CPU لوڊ ۽ ميموري جو استعمال گھٽجي ٿو. Apache Cassandra 4 سان ٽيسٽنگ جنريشنل ZGC هڪ مقرر ٿيل هيپ سائيز سان گڏ 4x واڌارو ڏيکاريو ۽ مسلسل ٿلهو پٽ سان هيپ سائيز ۾ هڪ چوٿين گهٽتائي ڏيکاري.
  • JavaDoc تبصرن ۾ دستاويز ڪوڊ لاءِ مارڪ ڊائون استعمال ڪرڻ لاءِ سپورٽ شامل ڪئي آهي، جيڪا HTML ۽ JavaDoc @ ٽيگ جي ميلاپ جي بدران استعمال ڪري سگهجي ٿي.
    جاوا SE 23 ۽ OpenJDK 23 جاري ڪيا ويا
  • سڀني قسمن جي ٽيمپليٽس، "انسٽانس آف" بيان ۾، ۽ "سوئچ" بلاڪن ۾ پرائمري قسمن (int، byte، char، ۽ ٻين غير اعتراض جي بنيادي قسمن) جي استعمال لاءِ ابتدائي مدد سان نمونن جي ميلاپ واري ميڪانيزم کي وڌايو ويو آھي. سوئچ (x.getStatus()) { ڪيس 0 -> "ٺيڪ"؛ ڪيس 1 -> "خبردار"؛ ڪيس 2 -> "غلطي"؛ ڪيس int i -> "اڻڄاتل حيثيت: " + i؛ } جيڪڏھن (i مثال بائيٽ ب) { … ب … }
  • شامل ڪيل ابتدائي سپورٽ ھڪڙي ھڪڙي استعمال ڪرڻ لاءِ "درآمد ماڊل M" بيان کي درآمد ڪرڻ لاءِ سڀني پيڪيجز کي درآمد ڪرڻ لاءِ ھڪڙي مخصوص ماڊل پاران برآمد ڪيل ھڪڙي وقت ۾. تبديلي خاص طور تي ماڊلر لائبريرين جي ٻيهر استعمال کي آسان بڻائي ٿي، توهان کي اجازت ڏئي ٿي ته توهان لائبريرين ۽ ڪلاسن کي شامل ڪرڻ جي بغير انهن جي جاءِ جو تعين ڪرڻ جي پيڪيج جي درجه بندي ۾. مثال طور، "import module java.base" جي وضاحت ڪرڻ سان java.base ماڊل ۾ شامل سڀ 54 پيڪيجز درآمد ٿيندا، جن کي اڳ ۾ الڳ الڳ ذڪر ڪرڻ جي ضرورت پوندي هئي ("import java.io.*"، "import java.util.* ”وغيره).

    جاوا ڪلاس فائلن کي پارس ڪرڻ، پيدا ڪرڻ ۽ تبديل ڪرڻ لاءِ ڪلاس-فائل API جو هڪ ٻيو ابتدائي عمل تجويز ڪيو ويو آهي. ClassFile cf = ClassFile.of(); ڪلاس ماڊل classModel = cf.parse(bytes)؛ byte[] newBytes = cf.build(classModel.thisClass().asSymbol(), classBuilder -> { for (ClassElement ce : classModel) { if (!(ce instanceof MethodModel mm && mm.methodName().stringValue(). startsWith("debug"))) { classBuilder.with(ce)؛

  • Vector API جو اٺون پريويو ویکٹر جي حسابن لاءِ ڪم مهيا ڪري ٿو جيڪي x86_64 ۽ AArch64 پروسيسرز تي ویکٹر هدايتون استعمال ڪندي عمل ڪيا وڃن ٿا ۽ عملن کي هڪ ئي وقت ڪيترن ئي قدرن (SIMD) تي لاڳو ٿيڻ جي اجازت ڏين ٿا. HotSpot JIT ڪمپلر ۾ مهيا ڪيل صلاحيتن جي برعڪس اسڪيلر آپريشنز جي آٽو ویکٹرائيزيشن لاءِ، نئون API ان کي ممڪن بڻائي ٿو واضح طور تي ویکٹرائيزيشن کي ڪنٽرول ڪرڻ لاءِ متوازي ڊيٽا پروسيسنگ لاءِ.
  • شامل ڪيل فارميٽ، printf، readPassword ۽ readLine طريقن کي java.io.Console ڪلاس ۾ فارميٽ ڪرڻ، ڊسپلي ڪرڻ ۽ پڙھڻ لاءِ ٽيڪسٽ منتخب ٿيل لوڪل جي بنياد تي. System.console().printf(Locale.FRANCE, "%1$tY-%1$tB-%1$te %1$tA", نئين تاريخ()) 2024-mai-16 jeudi
  • وڌايل اسٽريم API جو هڪ ٻيو پريويو عملدرآمد شامل ڪيو ويو آهي جيڪو توهان جي پنهنجي وچولي عملن جي وضاحت ڪرڻ جي حمايت ڪري ٿو، جيڪي شايد انهن صورتن ۾ ڪارائتو ٿي سگهن ٿيون جتي موجوده بلٽ ان وچولي آپريشن گهربل ڊيٽا جي تبديلي لاءِ ڪافي نه آهن. اصلي هينڊلر نئين وچولي آپريشن اسٽريم:: گيدر (گئدرر) کي استعمال ڪندي ڳنڍيا ويا آهن، جيڪي صارف جي مخصوص هينڊلر کي لاڳو ڪندي اسٽريم عناصر کي پروسيس ڪري ٿو. jshell> Stream.of(1,2,3,4,5,6,7,8,9) گڏ ڪريو (نئين WindowFixed(3)).toList() $1 ==> [[1, 2, 3], [4، 5، 6]، [7، 8، 9]]
  • واضح طور تي اعلان ڪيل طبقن ۽ "مکيه" طريقي جي اڻڄاتل مثالن جو هڪ ٽيون ابتدائي عمل شامل ڪيو ويو، جيڪو عوامي / جامد اعلانن سان، دليلن جي هڪ صف کي پاس ڪرڻ، ۽ طبقاتي اعلان سان لاڳاپيل ٻين ادارن کي ختم ڪري سگهي ٿو. // پبلڪ ڪلاس ھيو ھيلو ورلڊ { Public static void main(String[] args) { System.out.println("Hello world!"); } } // ھاڻي توھان منسوخ ڪري سگھو ٿا main() { System.out.println("هيلو، ورلڊ!")؛ }
  • ھڪڙي خصوصيت جو ھڪڙو ٻيو ڏيک شامل ڪيو ويو آھي جيڪو ٺاھيندڙن کي اجازت ڏئي ٿو ايڪسپريس کي بيان ڪرڻ کان پھريائين super(...) کي ڪال ڪرڻ کان اڳ، استعمال ڪيو ويو واضح طور تي ھڪڙي والدين طبقي جي ٺاھيندڙ کي وراثت واري طبقي جي ڪنسٽرڪٽر کان جيڪڏھن اھي ايڪسپريشن ڪنسٽرڪٽر پاران ٺاھيل مثال جو حوالو نه ڏين. ڪلاس اوٽر { void هيلو () { System.out.println("هيلو")؛ } ڪلاس اندروني { اندروني () { هيلو ()؛ سپر ()؛ } } }
  • شامل ڪيو ويو ٽيون پريويو اسڪوپڊ ويلز تي عمل درآمد، اجازت ڏئي ٿو غير مٽائي ڊيٽا کي شيئر ڪيو وڃي ٿريڊن ۾ ۽ ڊيٽا کي موثر طريقي سان مٽايو ويو ٻارن جي سلسلي جي وچ ۾ (قدر وراثت ۾ مليا آهن). اسڪوپڊ ويلز ٿريڊ-لوڪل ويريبلز ميڪانيزم کي تبديل ڪرڻ لاءِ ترقي ڪئي پئي وڃي ۽ وڌيڪ ڪارائتو آهن جڏهن تمام وڏي تعداد ۾ ورچوئل ٿريڊز (هزارين يا لکين موضوعن) کي استعمال ڪيو وڃي. Scoped Values ​​۽ thread-local variables جي وچ ۾ بنيادي فرق اھو آھي ته اڳيون ھڪ ڀيرو لکجن ٿيون، مستقبل ۾ تبديل نه ٿيون ڪري سگھجن، ۽ صرف ٿريڊ جي عمل جي مدت تائين موجود رھن ٿيون.
  • Structured Concurrency API جو هڪ ٽيون ڏيک جانچڻ لاءِ تجويز ڪيو ويو آهي، هڪ ئي بلاڪ جي طور تي مختلف موضوعن ۾ هلندڙ ڪيترن ئي ڪمن کي پروسيس ڪندي گھڻن موضوعن واري ايپليڪيشنن جي ترقي کي آسان بڻائي.
  • خارجي ياداشت جي رسائي جا طريقا (JVM کان ٻاهر) sun.misc.Unsafe ڪلاس پاران مهيا ڪيل ختم ڪيا ويا آهن ۽ هٽائڻ لاءِ شيڊول ڪيو ويو آهي. آف هيپ ميموري تائين رسائي حاصل ڪرڻ ۽ خارجي ڪوڊ سان لهه وچڙ ڪرڻ لاءِ، ان کي استعمال ڪرڻ جي صلاح ڏني وئي آهي VarHandle API ۽ FFM (فارين فنڪشن ۽ ميموري) API.

اضافي طور تي، اسان جاوا ايفڪس 23 گرافڪ انٽرفيس سان ايپليڪيشن ٺاهڻ ۽ مکيه Oracle JDK 23 ۾ GraalVM JIT ڪمپلر جي شموليت لاءِ پليٽ فارم تي تازه ڪاري جي اشاعت کي نوٽ ڪري سگهون ٿا.

يونيورسل ورچوئل مشين GraalVM جو هڪ نئون رليز پڻ پيش ڪيو ويو آهي، جيڪو JavaScript (Node.js)، Python، Ruby، R، JVM (Java، Scala، Clojure، Kotlin) ۽ ٻولين ۾ هلندڙ ايپليڪيشنن کي سپورٽ ڪري ٿو. جنهن لاءِ LLVM بٽ ڪوڊ ٺاهي سگھجن ٿا (C , C++ , Rust). JDK 23 کي سپورٽ ڪرڻ کان علاوه، نئون ورزن ميموري جي استعمال ۽ ايگزيڪيوٽو ڪوڊ جي سائيز کي بهتر ڪري ٿو، ۽ JIT تاليف استعمال ڪندي Python ۽ WebAssembly کي جاوا ڪوڊ ۾ شامل ڪرڻ لاءِ اوزارن لاءِ مڪمل سپورٽ فراهم ڪري ٿو.

جو ذريعو: opennet.ru

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