ProIT: медіа для профі в IT
Приблизно хвилину

Oracle розкрила 5 нових функцій для Java: що зміниться?

author avatar ProIT NEWS

З виходом JDK 24 у загальний доступ Oracle розкрила деякі з нових можливостей, які з’являться в Java найближчим часом. Серед них — покращене примітивне упаковування (primitive boxing), новий тип класів без null (null-restricted value classes) і стабільні значення (stable values), які вже заплановані для випуску у JDK 25 у вересні цього року.

Як повідомляє Info World, Oracle назвала п’ять нововведень, які наразі перебувають у стадії попереднього перегляду та мають відповідні JDK Enhancement Proposals (JEP).

Покращене примітивне упаковування (Enhanced Primitive Boxing)

Воно дає можливість розглядати примітиви більш схожими на референсні типи. Завдяки цьому можна:

  • Використовувати упаковані примітиви як отримувачі (receivers) при доступі до полів, виклику методів або посиланні на методи.
  • Використовувати невпаковані типи як типи повернення при перевизначенні методів із референсним типом повернення.
  • Додавати примітивні типи як аргументи узагальнень (generic types).

Класи значень без null (Null-Restricted Value Class Types)

Дають можливість створювати змінні, які не можуть містити значення null. Це дає можливість ефективніше використовувати пам’ять та оптимізувати виконання коду. Такі типи є нововведенням як на рівні мови, так і на рівні JVM.

Класи значень та об’єкти (Value Classes and Objects)

Додають підтримку об’єктів значень (value objects) — екземплярів класів, які:

  • Складаються лише з final-fields.
  • Не мають ідентичності об’єкта.
  • Дозволяють JVM оптимізувати збереження таких об’єктів, покращуючи використання пам’яті, кешування і збірку сміття.

Створення похідних записів (Derived Record Creation)

Спрощує роботу з record-класами, додаючи можливість створювати нові записи на основі наявних. Головні переваги:

  • Лаконічний синтаксис для створення змінених копій записів.
  • Виключає потребу у wither-методах (аналогах setter-методів для immutable-об’єктів).

Стабільні значення (Stable Values)

Це об’єкти, що містять незмінні дані. Вони сприймаються JVM як константи, що дає змогу оптимізувати продуктивність на рівні, аналогічному до final-полів.

  • Головна перевага — гнучкість ініціалізації: на відміну від традиційних констант, стабільні значення можуть бути ініціалізовані не відразу, а коли це потрібно.
  • Це дає можливість прискорити запуск Java-застосунків, уникнувши монолітної ініціалізації стану програми.

Читайте на ProIT: Майбутнє Java: зміна вподобань у корпоративному секторі.

Підписуйтеся на ProIT у Telegram, щоб не пропустити жодної публікації!

Приєднатися до company logo
Продовжуючи, ти погоджуєшся з умовами Публічної оферти та Політикою конфіденційності.