5 Нововведень в java 9

Перед вами вільний переклад статті на тему цікавих нововведень в Java 9.

Які найцікавіші речі очікуються з релізом Java 9?

Зараз вже є досить чітке уявлення того, що варто очікувати в Java 9.

Якщо Java 8 може бути описана як версія з упором на лямбда, стрім і зміни API, то Java 9 повністю присвячена Jigsaw (основна мета - розбити JRE і принести модульність в компоненти ядра Java), додатковим утилітам і змін ядра. У цій статті зібрані деякі нововведення Java 9, які ми вважаємо найбільш цікавими.

Перераховані нижче нововведення вже готові і можуть бути випробувані вами в ранній версії Java 9.

1. Java + REPL = jshell

Раніше були сумніви, що Kulla встигне до Java 9. Але зараз стало відомо, що в наступному релізі Java однієї з нових особливостей буде нова утиліта для роботи з командним рядком. Вона називається jshell. Вона додасть вбудовану підтримку REPL (Read-Eval-Print-Loop) в Java. Тобто якщо ви захочете запустити кілька рядків коду на Java, то вам не доведеться обертати їх в класи або виділяти окремий проект. Так само можна забути про крапки з комою:

Існує кілька альтернативних рішень отримання REPL - у вигляді аддонів для популярних IDE або web консолі, але офіційного рішення не існувало досі. jshell вже доступний в ранній версії Java 9.

2. Мікробенчмаркі на підході

Java Microbenchmarking Harness (JMH) Олексія Шіпілева (Alexey Shipilev) робить новий крок в своєму розвитку і приєднується до Java, як офіційний бенчмарк.

Якщо ви хочете отримати найбільш точні результати, які допоможуть прийняти вам правильне рішення, то, на сьогоднішній день, JMH - кращий вибір. І тепер JMH стає частиною Java 9.

3. Чи буде G1 новим складальником сміття за замовчуванням?

Поширеним помилкою вважається, що в Java є всього один збирач сміття. Насправді їх цілих 4.

На даний момент обговорюється установка G1 складальником сміття за замовчуванням. G1 був вперше представлений в Java 7. Взагалі G1 був спроектований для поліпшеної роботи з "купою" розміром більше ніж 4 ГБ. G1 показує більш рідкісне спрацьовування збирача сміття, але час самого збору, зростає.

4. Майбутнє з HTTP 2.0

Кілька місяців тому була затверджена специфікація HTTP 2.0 RFC, побудована поверх SPDY алгоритму від гугла. SPDY вже показала збільшення швидкості щодо HTTP 1.1 в межах 11.81% -47.7%. Більшість сучасних браузерів вже підтримують дану технологію.

Java 9 буде повністю підтримувати протокол HTTP 2.0, а так само отримає новий HTTP клієнт, який прийде на заміну старого HttpURLConnection. У новому HTTP клієнта буде реалізована підтримка веб сокетов і HTTP 2.0.

5. Нововведення в process API

До сих пір можливість контролю і управління процесами операційної системи засобами Java були реалізовані дуже слабо. Наприклад, раніше щоб отримати інформацію про вашому PID потрібно було використовувати нативний код або вдаватися до чорної магії. Крім того, даний підхід вимагав індивідуального рішення для кожної з платформ.

До Java 9 код отримання PID мав приблизно такий вигляд:

Тепер даний код може виглядати наступним чином:

Оновлення розширить можливості взаємодії Java з операційною системою: нові методи для пошуку ідентифікаторів процесів (PIDs), імена та стану процесів і багато іншого.

Чого ми не побачимо в Java 9?

Дві можливості, які всі хотіли і чекали побачити, але які так і не потраплять в реліз Java 9.

Стандартизовані JSON API

За додавання JSON API голосували так само ретельно як за Jigsaw, але даний API так і не буде додано.

Головний архітектор платформи Java Марк Ренгольд (Mark Reinhold) в розсилці JDK 9 написав:

Ця система була б корисним доповнення до платформи, але за великим рахунком, це не так важливо як інші нововведення для JDK 9, що фінансуються або розглядаються до фінансування Оракл. Ми можемо переглянути це нововведення в JDK 10 або пізніших релізах.

API для роботи з грошима і валютами

Так само не буде додана підтримка роботи з грошима і валютою.