JavaRush /وبلاگ جاوا /Random-FA /جاوا 12 اینجاست: چه چیزی جدید است؟

جاوا 12 اینجاست: چه چیزی جدید است؟

در گروه منتشر شد
بنابراین، جاوا در رتبه 12 ظاهر شد. و حتی اگر این یک نسخه LTS نیست (یعنی پشتیبانی طولانی مدت نیست، نسخه ای نیست که برای مدت طولانی پشتیبانی می شود. نسخه 11 اولین نسخه LTS با هشت نسخه در نظر گرفته می شود. دوره پشتیبانی سال )، چیزهای جالبی در به روز رسانی آن ظاهر شد. بیایید به مهمترین آنها نگاه کنیم. به یاد بیاورید که در جاوا، پیشنهادهای تغییر به اختصار jeps (از JDK Enhancement Proposal) نامیده می شوند. جاوا 12 اینجاست: چه چیزی جدید است؟  - 1

جالب ترین JDK 12 جیپ

189: Shenandoah: جمع‌آوری زباله با زمان مکث کم (تجربی) جمع‌آوری زباله، Shenandoah، از الگوریتم جدیدی استفاده می‌کند که با پاک‌سازی همزمان با اجرای رشته‌های جاوا، زمان اجرا را کاهش می‌دهد. در این حالت، زمان مکث در شناندوا بدون توجه به اندازه پشته یکسان خواهد بود. بنا به دلایلی، اوراکل Sheandoah را در بیلدهای انتشار "رسمی" خود قرار نداد، علیرغم اینکه توسعه دهندگان این ویژگی را یکی از مهمترین ویژگی های نسخه جدید می دانند. بنابراین اگر می‌خواهید مجموعه‌ای از زباله‌های پیشرفته را امتحان کنید، باید از ساخت‌های شخص ثالث مانند Azul استفاده کنید . 230: Microbenchmark Suite Microbenchmark یک microbenchmark است که عملکرد برخی از عناصر کوچک را اندازه گیری می کند. در جاوا، آنها با استفاده از چارچوب JMH نوشته و اجرا می شوند. از نسخه 12، JMH به JDK اضافه شده است و در حال حاضر تست هایی در آن نوشته شده است که زندگی را برای توسعه دهندگان آسان می کند. 325: Switch Expressions (پیش نمایش) شکل جدیدی از نوشتن یک عبارت با دستور switch. صفحه ویژگی کد نمونه ای را با استفاده از سوئیچ سنتی ارائه می دهد، جایی که استفاده مداوم از break باعث می شود آن را به صورت غیرضروری پرمخاطب، که منجر به خطاهای تصادفی مکرر می شود.
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، نه دو این نام پیچیده راه حلی را برای مشکلی که در جاوا 9 ایجاد شد، پنهان می کند، زمانی که پورت های 64 بیتی ARM Oracle و aarch64 از Red Hat به طور همزمان در کیت ظاهر شدند. علاوه بر این، در حال حاضر در زمان انتشار JDK 11، حتی خود اوراکل از نسخه 64 بیتی پورت های اوراکل پشتیبانی نمی کرد. بنابراین در حال حاضر پورت های 64 بیتی Oracle حذف شده اند و ARM32 32 بیتی و aarch64 64 بیتی کارآمدتر باقی مانده اند. 341: بایگانی های پیش فرض CDS یک به روز رسانی بسیار خوب زیرا واقعاً راه اندازی برنامه را سرعت می بخشد. بر کسی پوشیده نیست که با شروع یک برنامه جاوا، تعداد زیادی کلاس شروع به بارگیری می کنند و این یک روند نسبتا طولانی است. CDS مخفف Class Data Sharing است، و این تابع به شما اجازه می دهد تا با استفاده از لیست پیش فرض همین کلاس ها، تمام این کلاس های راه اندازی شده در هنگام راه اندازی را در یک بایگانی اشتراک گذاری داده های کلاس ویژه قرار دهید. در نتیجه سرعت راه اندازی اپلیکیشن به میزان قابل توجهی افزایش می یابد. 344: Abortable Mixed Collections برای G1 G1 یک زباله جمع کننده است که به عنوان جمع کننده اصلی زباله در JDK 9، جایگزین Parallel GC شد. در جاوا 10، G1 یاد گرفت که زباله ها را در چندین رشته جمع آوری کند. با این حال، همه از کار او راضی نبودند؛ یکی از مشکلات اصلی مکث های طولانی بود. اکنون می توان آنها را لغو کرد. G1، بر اساس تجزیه و تحلیل رفتار برنامه، مقدار کار را تعیین می کند، و سپس اشیاء "زنده" را در مجموعه مجموعه جمع آوری می کند تا زمانی که همه چیز را بدون توقف جمع آوری کند. اغلب G1 محاسبه مقدار کار را از دست می دهد و بیش از حد طولانی کار می کند. هنگامی که jep-344 پیاده‌سازی شد، G1 می‌تواند به جمع‌آوری تدریجی زباله تغییر مکان دهد و اگر تکمیل مرحله بعدی بیش از حد معقول طول بکشد، آن مرحله می‌تواند لغو شود. 346: به سرعت حافظه متعهد استفاده نشده را از G1 برگردانید و چند به روز رسانی دیگر در اردوگاه اسمبلر G1 فوق الذکر. گاهی اوقات اتفاق می افتاد که یک دسته حافظه پشته جاوا وجود داشت، اما هیچکس از آن استفاده نکرد، این حافظه. در جاوا 12، اکنون می توانید حافظه غیرفعال را به سیستم عامل "برگردانید". پیش از این، بسیار نادر بود که G1 از حافظه خود صرف نظر کند، اما اکنون همه چیز ساده شده است. با ویژگی جدید، اگر فاصله زمانی از آخرین ساخت تمام شده باشد و چرخه همزمان وجود نداشته باشد، برنامه غیرفعال تعریف می شود. وضعیت دیگر این است که تابع getloadavg() که برای مدتی نظارت شده است، باری را زیر آستانه قابل قبول نشان دهد. اگر یکی از دو رویداد رخ دهد، جمع آوری جزئی زباله آغاز می شود. چیزی که جاوا 12 ندارد: رشته های خطی خام بسیاری از توسعه دهندگان به این ویژگی علاقه مند بودند، اما هرگز در این نسخه ظاهر نشد. نویسندگان آن تصمیم گرفتند که هنوز به کار نیاز دارد. بنابراین، ما به جرات امیدواریم که یک تابع برای کار راحت با حروف الفبای رشته ای در یکی از نسخه های بعدی جاوا ظاهر شود. پشتیبانی از لفظ رشته ای خام به شما امکان می دهد بدون توجه به زبان با اطلاعات رشته کار کنید. این امر نیاز به محافظ را از بین می برد. به ویژه در عبارات منظم، جایی که اسلش های برگشتی به طور گسترده ای استفاده می شود، و در مسیر ویندوز، که در آن از بک اسلش ها به عنوان جداکننده استفاده می شود، مفید است. یعنی برای جلوگیری از چنین ساخت و سازهایی: C:\\My\\Test\\Pack\\
هر برنامه نویسی اغلب در کار خود با مشکلی مواجه می شود. گاهی اوقات آنها با بی تجربگی توسعه دهنده همراه هستند، اما گاهی اوقات با نقص خود ابزار مرتبط هستند. جاوا یک زبان عالی است، اما هنوز کامل نیست. شاید قبلاً با چیزی در جاوا مواجه شده اید و می دانید که می خواهید چه چیزی را در "ابزار" (زبان) خود تغییر دهید؟ در نظرات به اشتراک بگذارید!

نتیجه گیری

در جاوا 12 انقلابی رخ نداد. با این حال، هیچ کس آن را برنامه ریزی نکرد. با این حال، تعدادی از نوآوری ها با هدف بهینه سازی عملکرد برنامه ها و سرعت بخشیدن به کار است که خبر خوبی است. به هر حال، IDEA در حال حاضر از JDK 12 پشتیبانی می کند، بنابراین می توانید قابلیت های آن را امتحان کنید. البته، به‌روزرسانی‌های کمی مستقیماً بر مبتدیان تأثیر می‌گذارد، اگرچه حتی کسانی که به تازگی یادگیری JavaRush را شروع کرده‌اند می‌توانند با سوئیچ جدید بازی کنند (پس از تنظیم پرچم --enable-preview).
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION