وصل Java 13. للتو ، بدأت ZGC في مشاركة الذاكرة ، وتذكر CDS نفسها الطبقات ، وغيرها من العجائب التقنية


اليوم تم إصدار نسخة جديدة من Java - Java / JDK 13. بدأ السباق بإصدار ربيع JDK 12 ، الذي عقد في 19 مارس ، وحدثت الشوكة من الفرع الرئيسي في 13 يونيو. شخص ما فقدناه على طول الطريق مثل JEP 343: أداة التعبئة ، ولكن بشكل عام ، كل شيء طبيعي ، وقد حان الوقت لجني الفوائد.


يمكنك تنزيل الإصدار الجديد من هنا . تحت خفض سيكون لمحة صغيرة من JEPs جديدة المدرجة في هذا الإصدار.


351 JEP: ZGC: الذاكرة غير المستخدمة غير المستخدمة


كما تعلمون ، في JDK 11 ، لدينا GC - ZGC جديدة رائعة ، قابلة للتطوير ، سريعة ومنخفضة وقفة. حسنا ، أو على الأقل هذه هي الفكرة. كانت هناك مشكلة خطيرة فيه تتمثل في تصرفه ككلب في المذود ولم يتخل عن الذاكرة المزدحمة ، حتى لو لم تكن هناك حاجة لذلك. بدأت Shenandoah و G1 في المشاركة منذ وقت طويل ، وبدا سلوك ZGC في مصافحة المجرمين. حسنًا ، كل شيء ثابت الآن ، بعد انتهاء المهلة -XX:ZUncommitDelay في -XX:ZUncommitDelay وحدات البايت الخاصة بنا.


JEP 350: أرشيفات CDS الديناميكية


تتيح لك ميزة CDS نفسها إضافة فئات قابلة للتحميل إلى أرشيف مشترك ، وبالتالي تسريع بدء التشغيل وتقليل كمية ذاكرة الوصول العشوائي الضائعة. لسوء الحظ ، قبل أن يكون الأمر غبيًا إلى حد ما ، اضطررت أنت بنفسك إلى إعادة تشغيل التطبيق عدة مرات ، لتشكيل قائمة بهذه الفئات ، ثم قم أيضًا بإلقاء يديك على هذه القائمة. الآن تعمل الروبوتات ، وليس البشر: عند -XX:ArchiveClassesAtExit الخيار -XX:ArchiveClassesAtExit ، يتم تفريغ الفئات تلقائيًا في الأرشيف بعد إيقاف تشغيل التطبيق العادي.



ستيوارت ماركس - دكتور مستنكر ، عضو استشاري في الكادر الفني في Oracle + olegchir على Oracle Code One ، بعد دقائق قليلة من الإعلان عن Java 13


JEP 353: إعادة تنفيذ واجهة برمجة تطبيقات Legacy Socket


في جميع javas (أصبح الآن net.Socket ) ، net.Socket و java.net.ServerSocket إلى مزيج جهنمي من Java و C ، والذي حتى منهجو الأداء الأكثر خبرة. تم حل المشكلة عن طريق كتابة تطبيق جديد باستخدام نفس البنية التحتية الداخلية مثل NIO ، لذلك فهي لا تحتاج إلى رمزها الأصلي. حسنًا ، ومع ذلك ، هذا ليس إرثًا ، لقد كتبوا كل شيء بشكل جميل ومناسب للانتقال إلى الألياف من مشروع Loom. إذا كانت مثيرة للاهتمام تحت الغطاء ، فأنت بحاجة إلى إلقاء نظرة على فئة NioSocketImpl .


JEP 354: تبديل التعبيرات


نستمر في الاستعداد لوصول مطابقة النمط. Switch Expressions هي أول ميزة تسمح لك بكتابة كود النموذج:


 int j = switch (day) { case MONDAY -> 0; case TUESDAY -> 1; default -> { int k = day.toString().length(); int result = f(k); yield result; } }; 

كما نرى في المثال ، نظرًا لأن JDK 12 لدينا تغيير تجميلي واحد: تم تغيير break إلى yield ، أصبح كل شيء الآن مثل كل الأشخاص الطبيعيين.


JEP 355: كتل النص


JEP 326: ذهب الخام سلسلة حرفية تحت السكين ، ولكن حياته التجارية على! "أخبر الرفيق ستالين - لقد حدث خطأ فادح" . كتل النص هي ميزة معاينة جديدة تتيح لك القيام بها دون الهروب ، فهي تقوم بتنسيق الخطوط بطريقة مريحة ، يهيئ القهوة مع رغوة وبأعجوبة يعطي السيطرة على شكل السلسلة الناتجة.


أكثر دنيوية ، والآن أي الجلاد دون الحاجة إلى تعلم JSP يمكن أن يكتب شيئا مثل:


 String html = """ <html> <body> <p>Hello, world</p> </body> </html> """; 

سيتمكن مبتدئ DBA من بناء مهنة من خلال البدء بالكود التالي:


 String query = """ SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB` WHERE `CITY` = 'NEW DEHLI' ORDER BY `EMP_ID`, `LAST_NAME`; """; 


يبدو قليلا تهديد


تحذير


نظرة عامة على JEP هي جزء صغير مما يمكنك وينبغي أن تخبره عن Java الجديدة. يجب أن تتضمن هذه المراجعة الكاملة أيضًا مراجعة شاملة للابتكارات التكتيكية المثيرة للاهتمام ونظرة عامة على الأخطاء في bugtracker. ربما شخص ( lany ، ay!) سيكون قادرًا على مواصلة هذا العمل. إن فريقي وأنا الآن في Oracle Code One - لسوء الحظ ، نجلس على التقارير أو نعتمد على جناح Liberica JDK - من الصعب جدًا كتابة شيء طويل. في أي حال ، هذا موضوع لموقع محور مختلف تمامًا.



براين جويتز - مهندس لغة جافا في Oracle + olegchir على Oracle Code One


ولدينا أيضًا مؤتمر Joker حيث يمكننا مناقشة الحاجة إلى التبديل إلى Java 13 ، وتوقيت الانتقال إلى ZGC ، وكمية مخزون الفشار اللازمة بعد إدخال كتل النص ، وغيرها من القضايا ذات الصلة. التذاكر ، كما هو الحال دائمًا ، يمكن شراؤها على الموقع الرسمي .

Source: https://habr.com/ru/post/ar467789/


All Articles