آخرین ارتقای جاوای استاندارد که اکنون در نسخه تولیدی موجود است، تعدادی از قابلیتهای جدید از جمله رشتههای مجازی و همزمانی ساختاریافته را انکوبه یا پیشنمایش میکند.
Java Development Kit (JDK) 20 اکنون به عنوان نسخه تولیدی از Oracle در دسترس است. آخرین ارتقای جاوا استاندارد، JDK 20 دارای نسخههای انکوباسیون یا پیشنمایش هفت قابلیت جدید از جمله رشتههای مجازی و همزمانی ساختاریافته است.
هفت ویژگی که به طور رسمی برای انتشار علامتگذاری شدهاند، که همگی در مرحله انکوباسیون یا در مرحله پیشنمایش هستند، همچنین شامل یک API برداری، مقادیر محدوده، الگوهای رکورد، تطبیق الگو برای عبارات و عبارات سوئیچ، و یک تابع خارجی هستند. و API حافظه.
یک نسخه کوتاه مدت که به مدت شش ماه پشتیبانی می شود، JDK 20 پس از نسخه ۲۰ سپتامبر JDK 19 است. JDK 21 که قرار است در سپتامبر ارائه شود، نسخه پشتیبانی بلندمدت (LTS) خواهد بود که با چندین سال پشتیبانی پشتیبانی میشود. جاوا ۲۰ را می توان از oracle.com دانلود کرد.
اینها مشخصات هفت ویژگی جدید در JDK 20 است:
- پیشنهاد API برداری که تا همین چند هفته پیش به طور رسمی اضافه نشده بود، یک API را معرفی می کند بیان محاسبات برداری که به طور قابل اعتماد در زمان اجرا به عنوان دستورالعمل های برداری بهینه در معماری های پشتیبانی شده CPU کامپایل می شوند. با این کار عملکردی بهتر از محاسبات اسکالر معادل بدست می آید. API برداری قبلاً در JDK 16، JDK 17، JDK 18 و JDK 19 انکوبه شده است.< /li>
- رشتههای مجازی، در یک پیشنمایش دوم، رشتههای سبک وزنی هستند که تلاش برای نوشتن، حفظ، و مشاهده برنامه های همزمان با کارایی بالا. به گفته اوراکل، این قابلیت اساساً نحوه مقیاس بندی برنامه های جاوا را تغییر می دهد. تغییرات جزئی از اولین پیش نمایش در JDK 19 شامل تعداد کمی از تغییرات API (در JDK 19 دائمی شده است) و تجزیه به ThreadGroup (همچنین در JDK 19 دائمی شد).
- همزمانی ساختاریافته دارای یک API برای سادهسازی برنامهنویسی چند رشتهای است و چندین کار در حال اجرا در رشتههای مختلف را بهصورت یکپارچه انجام میدهد. واحد کار مدیریت خطا و لغو کارآمد شده، قابلیت اطمینان را بهبود می بخشد و قابلیت مشاهده را افزایش می دهد. تنها تغییری که از زمان انکوبه شدن در JDK 19 وجود دارد این است که
StructuredTaskScope
برای پشتیبانی از وراثت مقادیر دامنه توسط رشته های ایجاد شده در یک محدوده وظیفه به روز شده است. این ویژگی دوباره در حال رشد است. - مقادیر محدوده، یک API در مرحله توسعه انکوباتور، امکان به اشتراک گذاری داده های تغییرناپذیر را در داخل و در سراسر رشته ها اینها به متغیرهای thread-local ترجیح داده می شوند، به ویژه زمانی که از تعداد زیادی رشته مجازی استفاده می شود. یک مقدار scoped اجازه می دهد تا داده ها به طور ایمن و کارآمد بین اجزای یک برنامه بزرگ بدون توسل به آرگومان های متد به اشتراک گذاشته شوند. اهداف عبارتند از سهولت استفاده، قابل درک بودن، استحکام، و عملکرد.
- ثبت الگوها، در یک پیشنمایش دوم، زبان برنامهنویسی جاوا را با الگوهایی برای ساختارشکنی مقادیر رکورد تقویت کنید. الگوهای ضبط و الگوهای نوع را می توان تو در تو قرار داد تا شکلی اعلامی، قدرتمند و قابل ترکیب از ناوبری و پردازش داده را فعال کند. اهداف شامل گسترش تطابق الگو برای بیان پرسشهای داده پیچیدهتر و قابل ترکیب و عدم تغییر نحو یا معنایی الگوهای نوع است. تغییرات اصلی از اولین پیشنمایش در JDK 19 شامل افزودن پشتیبانی برای استنتاج آرگومانهای نوع الگوهای رکوردهای عمومی، پشتیبانی از الگوهای رکورد برای نمایش در سربرگ یک عبارت پیشرفته
for
است. ، و حذف پشتیبانی از الگوهای رکورد نامگذاری شده. - API عملکرد و حافظه خارجی یک API را معرفی می کند که توسط آن برنامه های جاوا می توانند با کد و داده های خارج از آن تعامل داشته باشند. زمان اجرا جاوا API برنامه های جاوا را قادر می سازد تا کتابخانه های بومی را فراخوانی کرده و داده های بومی را بدون شکنندگی و خطر JNI (رابط بومی جاوا) پردازش کنند. API قبلاً در نسخههای ۱۷ و ۱۸ JDK انکوبه شده بود و در JDK 19 پیشنمایش شده بود. اصلاحات اضافه شده از JDK 19 شامل یکپارچهسازی انتزاعات
MemorySegment
وMemoryAddress
، یکMemory بهبودیافته است. سلسله مراتب، و تقسیم MemorySession
بهArena
وSegmentScope
برای ترویج اشتراکگذاری بخشها در سراسر مرزهای تعمیر و نگهداری. - تطبیق الگو برای عبارات و عبارات سوئیچ بیان مختصر و ایمن پرس و جوهای داده محور پیچیده را امکان پذیر می کند. این پیشنمایش چهارم که قبلاً در JDK 17، JDK 18 و JDK 19 پیشنمایش شده بود، ادامه تکامل مشترک را با الگوهای ضبط، که امکان اصلاحات مداوم بر اساس تجربه و بازخورد را فراهم می کند. تغییرات اصلی در تطبیق الگو برای سوئیچ از زمان پیشنمایش سوم شامل دستور زبان سادهشده برای برچسبهای سوئیچ و پشتیبانی از استنتاج آرگومانهای نوع برای الگوهای عمومی و الگوهای ثبت در عبارات و عبارات سوئیچ است. همچنین، یک سوئیچ جامع روی یک کلاس enum اکنون
MatchException
را به جایIncompatibleClassChangeError
میاندازد، اگر هیچ برچسب سوئیچ در زمان اجرا اعمال نشود.
Oracle روندی را مشاهده کرده است که در آن سایتهای کاربر نسخه LTS را در حال تولید اجرا میکنند و در عین حال آخرین نسخه شش ماهه را برای امتحان کردن و ارائه بازخورد اجرا میکنند.
به گفته اوراکل، ویژگیهای JDK 20 به سمت استاندارد شدن پیش میروند. این ویژگی ها از پروژه های تحقیقاتی جاوا از جمله Amber برای قابلیت های بهره وری (الگوهای رکورد و تطبیق الگو برای سوئیچ) مشتق شده اند. پاناما، برای اتصال JVM با کد بومی (API عملکرد و حافظه خارجی و API برداری). و Loom، که ویژگیهای JVM و APIهای ساخته شده در بالای آنها (مقادیر محدوده، رشتههای مجازی، و همزمانی ساختاریافته) را در خود جای میدهد.
قابلیتهایی که به JDK 20 راه نیافتهاند، اما هنوز برای جاوا در حال بررسی هستند، عبارتند از جهان عمومی، الگوهای رشته ای، مجموعه های توالی، و یک API VM ردیابی پشته ناهمزمان .
پست های مرتبط
JDK 20: ویژگی های جدید در جاوا ۲۰
JDK 20: ویژگی های جدید در جاوا ۲۰
JDK 20: ویژگی های جدید در جاوا ۲۰