JavaRush /مدونة جافا /Random-AR /Java 12 موجود هنا: ما الجديد؟

Java 12 موجود هنا: ما الجديد؟

نشرت في المجموعة
لذا، ظهرت Java في الرقم 12. وعلى الرغم من أن هذا ليس إصدار LTS (أي ليس دعمًا طويل المدى، وليس إصدارًا سيتم دعمه لفترة طويلة. يعتبر الإصدار 11 أول إصدار LTS بثمانية إصدارات) فترة دعم لمدة عام )، ظهرت أشياء مثيرة للاهتمام في تحديثاته. دعونا ننظر إلى أهمها. تذكر أنه في Java، يتم اختصار مقترحات التغيير كـ jeps (من اقتراح تحسين JDK). Java 12 موجود هنا: ما الجديد؟  - 1

الأكثر إثارة للاهتمام هو Jep's JDK 12

189: شيناندواه: جامع البيانات المهملة ذو وقت إيقاف مؤقت منخفض (تجريبي) يستخدم جامع البيانات المهملة، شيناندواه، خوارزمية جديدة تقلل وقت التشغيل عن طريق التنظيف في وقت واحد مع تشغيل سلاسل عمليات Java. في هذه الحالة، سيكون وقت التوقف المؤقت في Shenandoah هو نفسه بغض النظر عن حجم الكومة. لسبب ما، لم تقم Oracle بتضمين Sheandoah في إصدارات إصدارها "الرسمي"، على الرغم من أن المطورين يعتبرون هذه الميزة واحدة من أهم الميزات في الإصدار الجديد. لذا، إذا كنت تخطط لتجربة Garbage Collector المتقدم، فستحتاج إلى استخدام إصدارات خارجية، مثل Azul . 230: Microbenchmark Suite Microbenchmark عبارة عن علامة قياس دقيقة تقيس أداء بعض العناصر الصغيرة. في Java، تتم كتابتها وتشغيلها باستخدام إطار عمل 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 واحد، وليس اثنين، يخفي هذا الاسم المعقد حلاً لمشكلة نشأت في Java 9، عندما ظهرت منافذ ARM 64 بت من Oracle وaarch64 من Red Hat في المجموعة في نفس الوقت. علاوة على ذلك، في وقت إصدار JDK 11، حتى Oracle نفسها لم تدعم الإصدار 64 بت من منافذ Oracle. لذا تمت الآن إزالة منافذ Oracle 64 بت، مما أدى إلى ترك 32 بت ARM32 و64 بت، الأكثر إنتاجية، aarch64. 341: أرشيفات الأقراص المضغوطة الافتراضية تحديث جميل جدًا لأنه يعمل على تسريع تشغيل التطبيق. ليس سرا أنه عند بدء تشغيل تطبيق Java، يبدأ عدد كبير من الفئات في التحميل، وهذه عملية طويلة إلى حد ما. يرمز CDS إلى Class Data Sharing، وتسمح لك هذه الوظيفة بحزم كل هذه الفئات التي تم إطلاقها عند بدء التشغيل في أرشيف خاص لمشاركة بيانات الفئات، باستخدام القائمة الافتراضية لهذه الفئات نفسها. ونتيجة لذلك، تزداد سرعة تشغيل التطبيق بشكل ملحوظ. 344: المجموعات المختلطة القابلة للإلغاء لـ G1 G1 هي أداة تجميع البيانات المهملة التي أصبحت أداة تجميع البيانات المهملة الرئيسية في JDK 9، لتحل محل Parallel GC. في Java 10، تعلم G1 كيفية جمع البيانات المهملة في سلاسل رسائل متعددة. ومع ذلك، لم يكن الجميع سعداء بعمله، وكانت إحدى المشاكل الرئيسية هي التوقفات الطويلة. الآن يمكن إلغاؤها. يحدد G1، بناءً على تحليل سلوك البرنامج، مقدار العمل، ثم يجمع الكائنات "الحية" في مجموعة مجموعة حتى يجمع كل شيء، دون توقف. غالبًا ما أخطأ G1 في حساب حجم العمل وعمل لفترة طويلة جدًا. بمجرد تنفيذ jep-344، يمكن لـ G1 التبديل إلى جمع البيانات المهملة التزايدية وإذا استغرق إكمال الخطوة التالية وقتًا أطول مما هو معقول، فيمكن إلغاء هذه الخطوة. 346: إعادة الذاكرة المخصصة غير المستخدمة على الفور من G1 وبعض التحديثات الإضافية في معسكر مجمع G1 المذكور أعلاه. في بعض الأحيان يحدث أن هناك مجموعة من ذاكرة Java الكومة، لكن لم يستخدمها أحد، هذه الذاكرة. في Java 12، يمكنك الآن "إرجاع" الذاكرة غير النشطة إلى نظام التشغيل. في السابق، كان من النادر جدًا جعل G1 يتخلى عن الذاكرة، ولكن الآن تم تبسيط كل شيء. باستخدام الميزة الجديدة، يتم تعريف التطبيق على أنه غير نشط إذا انتهت صلاحية الفاصل الزمني منذ آخر إصدار ولم تكن هناك دورة متزامنة. هناك موقف آخر وهو إذا كانت الدالة getloadavg()، التي تمت مراقبتها لبعض الوقت، تُظهر حملًا أقل من الحد المقبول المحدد. في حالة حدوث أحد الحدثين، تبدأ عملية التجميع الجزئي للبيانات المهملة. ما لا يحتوي عليه Java 12: Raw String Literals كان العديد من المطورين مهتمين بهذه الميزة، لكنها لم تظهر مطلقًا في هذا الإصدار. قرر مؤلفوها أنها لا تزال بحاجة إلى العمل. لذلك، نجرؤ على الأمل في ظهور وظيفة للعمل المريح مع سلسلة حرفية في أحد الإصدارات التالية من Java. يتيح لك دعم القيم الحرفية للسلسلة الأولية العمل مع معلومات السلسلة بغض النظر عن اللغة. هذا يلغي الحاجة إلى التدريع. مفيدة بشكل خاص في التعبيرات العادية، حيث يتم استخدام الخطوط المائلة العكسية على نطاق واسع، وفي مسار Windows، حيث يتم استخدام الخطوط المائلة العكسية كمحددات. أي لتجنب مثل هذه الإنشاءات: C:\\My\\Test\\Pack\\
غالبًا ما يواجه كل مبرمج صعوبة أو أخرى في عمله. في بعض الأحيان ترتبط بعدم خبرة المطور، ولكن في بعض الأحيان مع عدم وجود الأداة نفسها. تعد Java لغة رائعة، لكنها بعيدة كل البعد عن الكمال. ربما تكون قد واجهت شيئًا ما في Java بالفعل وتعرف ما الذي ترغب في تغييره في "الأداة" (اللغة) الخاصة بك؟ شارك في التعليقات!

الاستنتاجات

لم تكن هناك ثورة في Java 12. ومع ذلك، لم يخطط أحد لذلك. ومع ذلك، يهدف عدد من الابتكارات إلى تحسين تشغيل التطبيقات وتسريع العمل، وهو أمر جيد. بالمناسبة، تدعم IDEA بالفعل JDK 12، لذا يمكنك تجربة إمكانياتها. بالطبع، هناك القليل من التحديثات التي تؤثر بشكل مباشر على المبتدئين، على الرغم من أنه حتى أولئك الذين بدأوا للتو في تعلم JavaRush يمكنهم اللعب باستخدام المفتاح الجديد (بعد تعيين علامة --enable-preview).
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION