Новости Java #33

• Ещё один JEP предложен к Java 18: Deprecate Finalization for Removal (JEP 421).

• В проекте Valhalla появился новый черновик JEP: Value Objects (Preview). В нём предлагается ввести новый тип объектов в Java: value-объекты.

Value-объекты отличаются от классических объектов тем, что не имеют identity. Это позволяет улучшить производительность при использовании таких объектов и уменьшить занимаемое ими место в памяти. Также value-объекты являются полностью иммутабельными, всегда являются final и не могут иметь synchronized-методов.

Однако, в отличие от примитивных объектов (JEP 401), которые также имеют все вышеописанные свойства, value-объекты являются ссылочными, поэтому являются nullable.

Таким образом, если в Valhalla всё будет реализовано согласно такой модели, то в Java будет три типа объектов: identity-объекты, value-объекты и примитивные объекты.

• Вышла IntelliJ IDEA 2021.3. Перечислим некоторые заметные изменения и улучшения:

  • В Ultimate версии появилась возможность удалённой разработки. Развернув бэкенд IDEA на удалённом сервере, к нему можно подключиться и работать из любой точки мира. Функция пока работает в Beta-режиме.
  • Новая функция Repair IDE позволяет быстро диагностировать и устранять наиболее распространённые неполадки.
  • Возможность изменить шрифт во всех вкладках одновременно с помощью Ctrl и колеса мыши.
  • Улучшенный предпросмотр результатов intention-действий.
  • Возможность разделения окна Run на несколько вкладок.
  • Поиск действий в Search Everywhere теперь тоже использует машинное обучение (ранее в IDEA 2020.3 машинное обучение было введено для Code Completion).
  • Новые инспекции в Java: отслеживание небезопасных строк (SQL-инъекция, XSS, конфиденциальные данные и т.п.), замена collect(toList()) на toList().
  • При выполнении рефакторинга Introduce Local Variable теперь не всплывает окно с настройками, а появляется значок шестерёнки. А при выполнении рефакторинга Introduct Parameter среда теперь спрашивает, где нужно заменить вхождения, и тоже показывает значок шестерёнки.
  • В Run/Debug Configurations теперь можно настраивать classpath, вручную добавляя туда отдельные записи или исключая ненужные.
  • Множество новых улучшений в Kotlin: действие Smart Step Into в отладчике, inline-функции в стек-трейсе, рефакторинг Extract Constant, улучшенная инспекция Possibly blocking call in non-blocking context, подсказки для диапазонов, улучшенный мастер создания проектов.
  • Async Profiler 2.0 теперь доступен в Windows-версии IntelliJ IDEA Ultimate из коробки.

• Компания JetBrains анонсировала свою новую среду разработки Fleet.

Fleet – это созданная с нуля среда разработки, которая представляет собой легковесный редактор с базовыми возможностями, но с возможностью включения smart-режима, при котором она превращается в полнофункциональную IDE. В отличие от классических IDE JetBrains, каждая из которых создана для одной конкретной технологии, Fleet поддерживает разные технологии в рамках одного приложения (на текущий момент есть поддержка Java, Kotlin, Python, Go, JavaScript, Rust, TypeScript, JSON). Fleet имеет распределённую архитектуру, в которой фронтенд отделён от бэкенда, что позволяет использовать среду не только локально, но и в распределённых сценариях: удалённая, облачная, совместая разработка и т.д.

В данный момент Fleet недоступен широкому кругу пользователей, и работает программа Fleet Preview, в которой, однако, закончился приём заявок из-за большого наплыва желающих протестировать новую IDE.

• Вышел выпуск Java Annotated Monthly от JetBrains за декабрь 2021.

• Вышел Apache Maven 3.8.4.

• Вышла вторая версия H2, популярной SQL СУБД, написанной полностью на Java. Это произошло спустя 16 лет после выхода первой версии.

• Вышел JCStress 0.15.

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

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