پس از شش ماه توسعه، اوراکل جاوا SE 19 (پلتفرم جاوا، نسخه استاندارد 19) را منتشر کرد که از پروژه منبع باز OpenJDK به عنوان پیاده سازی مرجع استفاده می کند. به استثنای حذف برخی از ویژگیهای منسوخ، Java SE 19 سازگاری با نسخههای قبلی پلتفرم جاوا را حفظ میکند - اکثر پروژههای جاوا که قبلاً نوشته شدهاند، در صورت اجرا تحت نسخه جدید بدون تغییر کار میکنند. بیلدهای آماده برای نصب جاوا SE 19 (JDK، JRE و سرور JRE) برای لینوکس (x86_64، AArch64)، ویندوز (x86_64) و macOS (x86_64، AArch64) آماده شده اند. پیاده سازی مرجع جاوا 19 که توسط پروژه OpenJDK توسعه یافته است، کاملاً منبع باز تحت مجوز GPLv2 است، با استثناهای GNU ClassPath که امکان پیوند پویا با محصولات تجاری را فراهم می کند.
جاوا SE 19 به عنوان نسخه پشتیبانی معمولی طبقه بندی می شود و تا نسخه بعدی به دریافت به روز رسانی ها ادامه خواهد داد. شعبه پشتیبانی طولانی مدت (LTS) باید جاوا SE 17 باشد که تا سال 2029 به دریافت به روز رسانی ادامه خواهد داد. یادآوری می کنیم که با شروع انتشار جاوا 10، این پروژه به یک فرآیند توسعه جدید تبدیل شد که به معنای چرخه کوتاه تری برای شکل گیری نسخه های جدید است. عملکرد جدید اکنون در یک شاخه اصلی که دائماً بهروز میشود، توسعه مییابد که شامل تغییرات آماده است و شاخهها هر شش ماه یکبار برای تثبیت نسخههای جدید منشعب میشوند.
ویژگی های جدید جاوا 19 عبارتند از:
- پشتیبانی اولیه برای الگوهای رکورد پیشنهاد شده است، و ویژگی تطبیق الگوی معرفی شده در جاوا 16 را با ابزارهایی برای تجزیه مقادیر کلاس های رکورد گسترش می دهد. به عنوان مثال: رکورد Point(int x, int y) {} void printSum(Object o) { if (o instanceof Point(int x, int y)) { System.out.println(x+y); } }
- بیلدهای لینوکس از معماری RISC-V پشتیبانی می کنند.
- پشتیبانی اولیه برای FFM (عملکرد و حافظه خارجی) API اضافه شده است که به شما امکان می دهد تعامل برنامه های جاوا را با کد و داده های خارجی با فراخوانی توابع از کتابخانه های خارجی و دسترسی به حافظه خارج از JVM سازماندهی کنید.
- پشتیبانی از رشتههای مجازی اضافه شده است، که رشتههای سبک وزنی هستند که نوشتن و نگهداری برنامههای چند رشتهای با کارایی بالا را بسیار ساده میکنند.
- چهارمین پیشنمایش Vector API پیشنهاد شده است، که توابعی را برای محاسبات برداری ارائه میکند که با استفاده از دستورالعملهای برداری در پردازندههای x86_64 و AArch64 اجرا میشوند و اجازه میدهند عملیاتها به طور همزمان روی چندین مقدار (SIMD) اعمال شوند. برخلاف قابلیت های ارائه شده در کامپایلر HotSpot JIT برای بردارسازی خودکار عملیات اسکالر، API جدید امکان کنترل صریح بردارسازی برای پردازش موازی داده را فراهم می کند.
- سومین اجرای آزمایشی از تطبیق الگو در عبارات "سوئیچ" اضافه شده است، که اجازه می دهد در برچسب های "مورد" از مقادیر دقیق استفاده شود، بلکه از الگوهای انعطاف پذیری که مجموعه ای از مقادیر را به طور همزمان پوشش می دهند، استفاده شود، که قبلاً برای آنها لازم بود. از زنجیره های دست و پا گیر عبارات “if...else” استفاده کنید. شی o = 123L; String formatted = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); پیش فرض -> o.toString(); };
- یک API آزمایشی برای موازی سازی ساختاریافته اضافه شده است که توسعه برنامه های کاربردی چند رشته ای را با استفاده از چندین کار در حال اجرا در رشته های مختلف به عنوان یک بلوک ساده ساده می کند.
منبع: opennet.ru