این پیشنهاد بیان میکند که ثابتهای محاسبهشده، عملکرد و مزایای ایمنی فیلدهای نهایی را ارائه میدهند، اما انعطافپذیری بیشتری در زمانبندی اولیهسازی دارند.
یک پیشنهاد OpenJDK ثابت های محاسبه شده را به جاوا معرفی می کند. دارندگان مقدار تغییرناپذیر که حداکثر یک بار مقداردهی اولیه می شوند، ثابت های محاسبه شده، عملکرد و مزایای ایمنی فیلدهای نهایی را ارائه می دهند و در عین حال انعطاف پذیری بیشتری را در مورد زمان بندی اولیه ارائه می دهند.
پیشنهاد در حال حاضر در یک وضعیت پیشنویس است و برای جاوای استاندارد در نظر گرفته شده است. هدایت تلاش این مفهوم است که توسعه دهندگان باید «تغییر ناپذیری را ترجیح دهند»، زیرا تغییر ناپذیری تعدادی مزیت را به همراه دارد. اشیاء تغییرناپذیر فقط می توانند در یک حالت باشند که به دقت توسط سازنده آن کنترل می شود. اشیای تغییرناپذیر را می توان آزادانه با کدهای نامعتبر به اشتراک گذاشت. و تغییر ناپذیری همه نوع بهینه سازی زمان اجرا را فعال می کند.
ابزار اصلی جاوا برای مدیریت تغییرناپذیری، فیلدهای نهایی
است، اما فیلدهای نهایی
محدودیتهایی دارند. در نتیجه، توسعه دهندگان باید بین مزایای نهایی بودن و انعطاف پذیری در زمان بندی اولیه، یکی را انتخاب کنند. توسعه دهندگان استراتژی هایی برای بهبود عدم تعادل ابداع کرده اند، اما هیچ کدام ایده آل نیستند.
API ثابتهای محاسبهشده کلاسها و یک رابط را تعریف میکند تا کد مشتری در برنامهها و کتابخانهها بتواند وظایفی از جمله تعریف و استفاده از اشیاء ثابت محاسبهشده و مجموعههای ثابت را انجام دهد. API در بسته java.lang
ماژول java.base
قرار دارد.
اهداف این طرح عبارتند از:
- جداسازی مقداردهی اولیه ثابت های محاسبه شده از مقداردهی اولیه شی یا کلاس حاوی آنها.
- ارائه یک API بصری برای ثابت ها و مجموعه های محاسبه شده.
- فعال کردن بهینهسازیهای تاشو ثابت برای ثابتهای محاسبهشده و پشتیبانی از وابستگیهای جریان داده بین این ثابتها.
- کاهش مقدار کد اولیه استاتیک و/یا مقداردهی اولیه فیلد برای اجرا.
- اجازه گسستن “سوپ” وابستگیهای
با اعمال موارد بالا. - حفظ ثبات و یکپارچگی، حتی در یک محیط چند رشته ای.
غیر هدف شامل ارائه پشتیبانی زبان اضافی برای بیان محاسبات ثابت و جلوگیری یا رد کردن اصطلاحات موجود برای بیان اولیه سازی تنبل است.
با تنظیم ویژگی برای نسخه بعدی جاوا استاندارد، Kit توسعه جاوا ۲۱، که اکنون مسدود شده است، با انتشار در سپتامبر، اولین نسخه ممکن جاوا استاندارد که می تواند شامل ثابت های محاسبه شده باشد JDK 22 باشد، موعد مقرر در مارس ۲۰۲۴.
پست های مرتبط
طرح OpenJDK ثابت های محاسبه شده را به جاوا اضافه می کند
طرح OpenJDK ثابت های محاسبه شده را به جاوا اضافه می کند
طرح OpenJDK ثابت های محاسبه شده را به جاوا اضافه می کند