Хоча до виходу Java 13 залишилося ще цілих три місяці, на сторінці OpenJDK постійно з'являються подробиці про нововведення в майбутній версії нашої з вами улюбленої мови. Нагадаємо, зміни в Java вносяться за допомогою пропозицій щодо покращення JDK - JEP (JDK Enhancement Proposals), які пізніше інтегруються в нові версії (ну, або не інтегруються, якщо їх не вважатимуть досить корисними та доцільними). Нижче є деякі фічі, які були запропоновані для нової версії Java: Текстові блоки. Згідно з JEP-355, JDK 13 повинні з'явитися текстові блоки (на рівні прев'ю). Текстові блоки – це багатосторінкові рядкові літерали, які усувають необхідність у переважній більшості escape-послідовностей. Тепер не потрібно буде екранувати більшість спеціальних символів, а ще з'являться автоматичні переноси рядка. Текстовий блок автоматично форматує рядок та надає розробникам контроль над форматом. Цей JEP був створений в першу чергу для спрощення процесів написання та читання коду, оскільки Java для вбудовування не-Java об'єктів (наприклад, XML або JSON) зазвичай потрібні "танці з бубном" - специфічне редагування рядків, тому такі вставки зазвичай складно створювати, підтримувати та читати. Оновлення сокетів API.У новій Java, швидше за все, перепишуть застарілі сокетів API. По ідеї оновлена реалізація стане більш сучасною та легшою в обслуговуванні та налагодженні. Вона має замінити базову реалізацію, використовувану API-інтерфейсами net.Socket та java.net.ServerSocket. Нова версія призначена для простої адаптації до роботи з user-mode тредами (волокнами або fibers), які досліджуються в Loom, проект, створений для того, щоб полегшити написання, налагодження, профільування та підтримку паралельних додатків. Коріння вищезазначених застарілих API сходить ще до JDK 1.0 і містить суміш застарілого коду C і Java, складного для налагодження та супроводу. У попередній реалізації також є інші проблеми: власна структура даних для підтримки асинхронного закриття, що викликає проблеми з надійністю та переносом, а також проблеми паралелізму, що потребують перегляду. Удосконалення ZGC(Z Garbage Collector). У новій версії збирач сміття ZGC хочуть змусити повертати пам'ять, що не використовується, в операційну систему. ZGC позиціонується як масштабований збирач сміття з низькою затримкою, проте на сьогоднішній день він все ще не повертає пам'ять, що не використовується, назад в ОС, навіть якщо ця пам'ять довго не використовувалася. Очевидно, це нераціонально, а для деяких додатків та середовищ, тих, що не можуть простоювати тривалий час, такий підхід зовсім критичний. Поліпшення функціональності Class-Data Sharing AppCDSдля забезпечення динамічного архівування класів наприкінці виконання програми. Class-Data Sharing або загальний доступ до даних класів був вперше представлений в JDK 5. Ця функціональність дозволяє попередньо обробляти набір класів у загальному архівному файлі, який можна відобразити в пам'яті під час виконання, щоб скоротити час запуску. Тепер архівні класи включатимуть усі завантажені класи додатків та бібліотек, які відсутні у стандартному архіві CDS базового рівня. Ця пропозиція призначена для підвищення зручності використання AppCDS та усунення необхідності для користувачів виконувати пробні запуски для створення списку класів для кожної програми. Продакт-версія нової форми виразів з оператором Switch - Switch Expressions . У Java 12версії на стадії превью з'явилося спрощення коду оператора switch. Його можна буде використовувати або по-старому, або як вираз. Тепер залишається дочекатися 17 вересня - дати релізу Java 13. Ну а якщо вам не терпиться ознайомитися з нововведеннями вже зараз, ви можете завантажити бета-складання з офіційного сайту.
Эллеонора Керри
41 рівень
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ