Что нового в Java 18

Весной 2022 года, а точнее 22 марта (Месяц Первого Зерна) 2022, вышла новая версия Java. Я уже описывал изменения, которые произошли в Java 17. Также рекомендую ознакомиться с учебником Java. Нововведений довольно мало. Большая часть перешла из Java 17 как preview или incubator, то есть пока недоступна без специальных опций. Я их не буду описывать ещё раз. Здесь описаны только те возможности, которые окончательно вошли в Java.

UTF-8 по умолчанию

Кроме System.out и System.err, которые используют не кодировку из Charset.defaultCharset(), а Console.charset().

Довольно важное изменение, я считаю, так как раньше могло появляться порядочно проблем. Если создавать, например, new InputStreamReader(new FileInputStream(file));, то использовалась кодировка системы по умолчанию. Нужно было указывать кодировку new InputStreamReader(new FileInputStream(file), encoding);, чтобы избежать этой неоднозначности. Теперь же в этом случае будет использоваться UTF-8, а не кодировка системы по умолчанию.

Кусочки кода в JavaDoc

Раньше для вставки кусков кода в документацию часто писали:

Теперь для этого существует специальный тег @snippet:

Object.finalize помечен для удаления в будущих релизах

Метод java.lang.Object.finalize был указан как устаревший в Java 9. В Java 18 он указан как метод для удаления в последующих релизах.

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

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