كل شيء عن Java12 - الميزات الجديدة والأمان وبيان تعبير التبديل (أمثلة)

نشرت: 2019-04-07

جافا 12 - كل الأشياء الجديدة - التفاصيل بواسطة Crunchify

في 19th March 2019 ، تم إصدار Java12. كما نعلم كان Java12 جزءًا من الإصدار السريع ، فقد تم إصداره في 6 أشهر فقط بعد إصدار Java11.

في هذا البرنامج التعليمي ، سنتعرف على جميع التغييرات والميزات الجديدة حول Java12.

شخصياً ، قمت بالتبديل إلى Java12 لجميع عمليات التطوير الخاصة بي ، ولكن من المبكر جدًا بالنسبة لدورة الإنتاج. احتفظ بهذا البرنامج التعليمي مرجعيًا عندما تريد التبديل إلى Java12 لجميع مشاريع الإنتاج الخاصة بك.

ما الجديد في Java12؟ الميزات الجديدة في Java12:

هناك عدد غير قليل من الميزات المتعلقة بسير العمل الداخلي والمستخدم في Java12 والتي تغيرت. لنلقِ نظرة على ما يوجد داخل Java 12.

التغيير 1) تفريغ الفئة المتزامنة

عادةً ما يفرغ جامع القمامة العادي المتغير غير المستخدم أثناء دورة GC ونلاحظ عادةً بعض التوقف / الإيقاف المؤقت في العملية ، أو زيادة وحدة المعالجة المركزية خلال ذلك الوقت. عادة لا نلاحظ ذلك.

مع ZGC (Z Garbage Collector) - يدعم Java12 تفريغ الفئة المتزامن أيضًا. نظرًا لأن هذا يحدث أثناء دورة GC العادية ، فلا يوجد أي توقف مؤقت ولا مزيد من استخدام الذاكرة الإضافي أيضًا.

افتراضيًا ، يتم تمكين ZGC في Java12. لا مزيد من الإجراءات المطلوبة

كيفية تعطيل ZGC؟

  • ما عليك سوى بدء تطبيقك باستخدام وسيطة سطر أوامر JVM -XX:-ClassUnloading

Change-2) احصل على مزيد من التفاصيل حول JVM Crash

عندما يكون هناك خطأ OOM (نفاد الذاكرة) أو تعطل JVM ، عادةً ما تنشئ Java ملفات تفريغ بجميع التفاصيل.

باستخدام معلمات JVM هذه ، سيتم إنشاء ملفات التفريغ ضمن /tmp/crunchify/ المجلد على خطأ OOM.

يوجد خيار آخر مضاف في Java12:

سيتم إنشاء ملف سجل جديد باسم hs_err<pid>.log مع كافة التفاصيل حول تعطل JVM. هذا مفيد جدًا لبيئة الإنتاج الخاصة بك إذا كنت تشاهد تعطلًا متكررًا وتريد تصحيح المزيد.

بشكل افتراضي ، يتم تعطيله ولكن يمكنك تمكين تقرير الأعطال الشامل عن طريق إضافة معلمة سطر أوامر JVM أعلاه.

التغيير 3) تنسيق الأرقام المضغوط

يضيف java.text دعمًا لتنسيق الأرقام المضغوط. يمكن ذكر 100o كـ 1K و 100000 يمكن ذكرها كـ 100K .

نتيجة:

التغيير 4) تحسينات أمان Java

تغييرات security-libs/java.security :

  • عدم السماح والسماح بخيارات java.security.manager
    • إذا disallow النظام ثم. لا يمكن استخدام setSecurityManager لتعيين مدير الأمان.
  • -groupname تمت الإضافة إلى keytool Key Pair Generation
    • يمكن للمستخدم تحديد مجموعة مسماة عند إنشاء زوج مفاتيح.
  • تخصيص توليد PKCS12 keystore
    • يتضمن الخوارزميات والمعلمات من أجل
      • مفتاح الحماية
      • حماية الشهادة
      • ماك داتا
  • أحداث أمنية جديدة في JFR
    • ما هو JFR (مسجل طيران جافا)
    • تمت إضافة 4 أحداث جديدة في JFR
      • شهادة jdk.X509
      • jdk.X509 التحقق
      • jdk.TLS هاندشيك
      • jdk.SecurityPropertyModification

Change-5) JEP 325: تبديل التعبيرات

برنامج تعليمي لـ JEP 325 Switch Expressions من Crunchify

Switch statement المحسن مدعوم الآن في Java12.

  • Java 12 على أساس case L -> syntax . هنا ليس هناك أي استراحة ضرورية.
  • استخدام تعبير التبديل
    • هذا هو بيان التبديل المبسط
    • إذا تمت مطابقة التسمية ، فسيتم تنفيذ التعبير الموجود على يمين تسمية السهم فقط.
    • لا حاجة إلى بيان استراحة.

CrunchifyJava12SwitchExample.java

نتيجة فكرة IntelliJ:

نتيجة البرنامج التعليمي لبيان تبديل Java 12 - Crunchify

التغيير - 6) JVM Constants API

java.lang.invoke.constant : كما تعلم ، تحتوي فئة Java على مجموعة ثابتة تخزن جميع المعاملات في وقت التشغيل.

يضيف Java12 API لاستدعاء الثوابت في وقت التشغيل.

الميزات التي تمت إزالتها من Java12:

تمت إزالة الميزات من Java12 - Crunchify Tips

الميزات الموقوفة من Java12:

ميزات مهملة من Java12 - Crunchify Tips

اسمحوا لي أن أعرف ما إذا كان لديك أي برنامج تعليمي مفيد حول Java12 والذي ترغب في تضمينه هنا.