Вышла Java 13

Прошли очередные 6 месяцев, и в строгом соответствии с расписанием вышла новая, 13-я версия платформы Java. Как обычно, доступны для скачивания сборки Oracle JDK и OpenJDK.

Исчерпывающий список изменений, который можно посмотреть на сайте Алексея Шипилёва, содержит более 2 тысяч закрытых задач. Так как перечислить все их здесь невозможно, рассмотрим только некоторые из них.

  • Блоки текста (JEP 355) – новая возможность в языке, доступная только в preview-режиме. Это многострочные литералы, которые заключаются в тройные кавычки и имеют предсказуемое форматирование. Про них мы писали ранее. В дополнение к блокам текста также появились три новых метода в классе java.lang.String: formatted(), stripIndent() и translateEscapes().
  • Выражения switch (JEP 354) – языковая возможность, которая появилась в Java 12, но немного изменённая: оператор break заменён на yield. Новый switch по-прежнему доступен только в preview-режиме.
  • Динамические CDS-архивы (JEP 350) – очередное улучшение технологии Class Data Sharing. Впервые CDS появился в JDK 1.5 с большими ограничениями (только Client VM, Serial GC и системные классы). В JDK 9 добавилась поддержка Server VM, других сборщиков мусора и классов приложения (коммерческая возможность). В JDK 10 поддержка классов приложения стала бесплатной. В JDK 12 архивы с системными классами стали присутствовать по умолчанию в JDK на всех платформах. И, наконец, в JDK 13 упрощена процедура генерации CDS-архива: убрана необходимость в предварительной генерации списка классов и добавлена поддержка пользовательских загрузчиков классов. Теперь для работы с CDS достаточно только одной опции и одного запуска приложения: -XX:ArchiveClassesAtExit.
  • Выгрузка неиспользуемой памяти в ZGC (JEP 351) – теперь ZGC умеет отдавать неиспользуемую память обратно системе, как это уже умеют делать G1 и Shenandoah.
  • Реимплементация старого Socket API (JEP 353) – сокеты из JDK 1.0 были переписаны, чтобы в будущем быть совместимыми с волокнами, которые появятся в рамках проекта Loom.

Как и Java 12, Java 13 не будет LTS-релизом, то есть у него выйдет только два обновления.

Подписывайтесь на канал в Telegram, чтобы не пропускать новости.

Все материалы на этом сайте выложены под лицензией CC BY-SA 4.0
© Евгений Козлов, 2017-2020