Что нового в Java 15

Статья уже сильно запоздавшая, конечно. Я даже не знаю, что сказать. Эти версии… Они так быстро меняются. С описаниями новых возможностей каждого выпуска Java, начиная с Java 8, вы можете ознакомиться моем учебнике.

Итак, что же у нас появилось в Java 15. Как мы знаем, Java уже совсем не тот язык, что был десять лет назад. Если сравнивать текущий язык с Java 6, то сам подход уже немного другой. Возможностей стало намного больше, а язык больше не так строг, как раньше…

  1. Новый алгоритм шифрования Edwards-Curve Digital Signature
  2. Запечатанные классы
  3. Скрытые классы
  4. Удален Nashorn Javascript Engine
  5. Pattern matching for instanceof
  6. Сборщик мусора ZGC
  7. Текстовые блоки
  8. Записи

Новый алгоритм шифрования Edwards-Curve Digital Signature

Вряд ли вам придётся применять, его когда-нибудь, разве только если вы делаете что-то совсем специфическое. Упоминаю этот алгоритм только для общего развития.

Запечатанные классы

Запечатанные классы явно указывают список классов, которые могут их расширять. Пример:

Эта возможность добавлена только как preview-фича, а значит без параметра --enable-preview она недоступна, а также она может быть удалена в последующих релизах. Пока не буду подробно описывать эту фичу, когда окончательно утвердят, то тогда подробно и опишу. Текущая реализация вполне может быть кардинально изменена в последующих релизах Java.

Скрытые классы

Многие языки программирования для JVM (не только Java) используют генерацию классов во время выполнения. Например, в случае с Java лямбда выражения не создают классов во время компиляции с javac, вместо этого он классы создаются во время выполнения с помощью LambdaFactory. Разумеется, хотелось бы, чтобы эти классы не были доступны через Reflection; чтобы они могли выгружаться из памяти, когда становятся не нужны; а также имели доступны из класса, который их породил. До Java 15 такой возможности не было. Сейчас же их можно создавать с помощью Lookup::defineHiddenClass. Не думаю, что вам стоит углубляться в дебри создания скрытых классов. Это больше пригодится разработчикам фреймворков, наверное, да и то не всегда. Если нужно, то можете изучить подробности этой возможности в официальном описании.

Удален Nashorn Javascript Engine

Тут сложно что-то описать. Просто его больше нет.

Pattern matching for instanceof

В Java 14 это было введено в качестве preview. В Java 15 оно тоже находится в стадии preview. Я не буду лишний раз описывать, можете прочесть мое описание из нововведений в Java 14.

Сборщик мусора ZGC

Ранее был экспериментальным сборщиком мусора в Java 11. Теперь он окончательно вошел в релиз и включается с помощью опций:

Текстовые блоки

Текстовые блоки давно переходят из одной версии в другую, но как экспериментальная возможность. В Java 15 они окончательно вошли в Java в том виде, как я их описывал в статье про Java 14.

Пример:

Записи

Это уже второе preview для этой возможности. Прошлый раз я их описывал в статье про Java 14.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *