miniJUG
1.46K subscribers
1 photo
127 links
Новости Java: https://www.youtube.com/@mini_jug
Также подписывайтесь на второй канал: @microJUG
Буст: https://t.me/miniJUG?boost
Twitter: https://twitter.com/mini_JUG
Сайт: https://minijug.org
Feed: https://minijug.org/feed.xml
Чат: https://t.me/mini_JUG
Download Telegram
В конструкторах классов можно будет писать код перед this() и super().

Недавно в репозитории проекта Amber появился коммит, который позволит писать инструкции кода выше вызовов this() и super() в конструкторах. Сейчас this() или super() обязательно должны быть первыми вызовами в конструкторах, что часто создаёт неудобства при написании кода, например, если необходимо сделать какую-то нетривиальную валидацию входных аргументов или просто вынести в переменные слишком длинные выражения...

Подробнее: http://telegra.ph/Code-before-this--super-01-08
Switch в Java сможет возвращать значения.

Вчера на сайте OpenJDK появился новый JEP 325, в котором предлагается ввести в язык улучшенный оператор switch. Мотивацией для введения является то, что старый switch имеет несколько фундаментальных изъянов, которые нельзя исправить, не нарушив обратную совместимость. Во-первых, старый switch является императивной конструкцией, которая не может возвращать выражения и заставляет писать большое количество повторяющегося кода...

Подробнее: http://telegra.ph/Switch-Expressions-01-20
В Java 10 будет улучшена поддержка неизменяемых коллекций.

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

Во-первых, это методы, создающие неизменяемую копию другой коллекции: List.copyOf(), Set.copyOf() и Map.copyOf(). Это является полезным дополнением...

Подробнее: http://telegra.ph/Unmodifiable-collections-enhancements-in-Java-10-01-25
В Java могут появиться сырые строковые литералы, и какие проблемы это может принести.

Недавно на сайте OpenJDK появился черновик JEP, в котором предлагается ввести в язык новый вид литерала, называемого сырым строковым литералом. Такой литерал будет отличаться от традиционного строкового литерала тем, что в нём не будет экранирования специальных символов, и он может распространяться на несколько строк. Сырые строковые литералы будут заключаться в обратные одинарные кавычки (`) вместо двойных (")...

Подробнее: http://telegra.ph/Raw-string-literals-01-28
В Java можно будет исполнять исходные файлы напрямую.

Позавчера на сайте OpenJDK появился новый черновик JEP, в котором предлагается наделить лаунчер java способностью запускать исходные файлы Java напрямую без необходимости предварительной компиляции. Например, программу HelloWorld.java можно будет запустить, просто исполнив команду java HelloWorld.java. Это будет эквивалентом к компиляции HelloWorld.java через javac и последующим запуском Main-класса через java-лаунчер...

Подробнее: http://telegra.ph/Launch-Single-File-Source-Code-Programs-02-11
Oracle JDK станет платным.

Java 10 станет последним свободным релизом Oracle JDK. Так написал у себя в новостной рассылке Николай Парлог, сославшись на презентацию Шарата Чандера, директора по управлению продукцией Java в Oracle, а также на слова главного архитектора Java-платформы Марка Рейнхолда, с которым он лично общался на конференции Jfokus в начале февраля в Стокгольме.

Как известно, начиная с сентября 2017 года, Oracle переключил модель поддержки Java SE на Long Term Support (LTS). В этой модели релизы будут выходить каждые полгода, и раз в три года будет выходить LTS-релиз...

Подробнее: http://telegra.ph/No-more-free-Oracle-JDK-02-17
Вышла Java 10.

Только что на сайте Oracle стала доступна для скачивания новая, десятая версия Java SE. Java 10 – это первая версия Java, вышедшая в соответствии с новым полугодовым релизным циклом, т.е. не через несколько лет после выхода Java 9, а всего через полгода. Это значит, что в Java 10 не так много изменений по сравнению с Java 9, чем в Java 9 по сравнению с Java 8 (12 JEP-ов в Java 10 против 99 в Java 9).

Вот список главных изменений в Java 10. Подробнее: http://telegra.ph/Java-10-is-out-03-20
В Java появятся компактные тела методов.

Недавно на сайте OpenJDK появился новый черновик JEP, в котором предлагается позволить в Java писать методы в более компактной форме. Сейчас в Java для объявления методов есть только одна форма, в которой даже для простейших методов приходится писать фигурные скобки и ключевое слово return...

Подробнее: https://telegra.ph/Concise-Method-Bodies-09-21
Вышла Java 11.

Только что официально вышла новая, одиннадцатая версия Java. Скачать образы JDK можно либо в виде Oracle JDK под коммерческой лицензией, либо как OpenJDK с лицензией GPLv2. Различия между ними заключаются в том, что бесплатную версию Oracle JDK 11 можно легально использовать только для разработки, а OpenJDK можно использовать и в производственном целях...

Подробнее: https://telegra.ph/Java-11-is-out-09-25
Какую версию Java используете в своём главном проекте?
Anonymous Poll
1%
Java 5
0%
Java 6
6%
Java 7
75%
Java 8
1%
Java 9
0%
Java 10
13%
Java 11
4%
Другое
Вышла Java 12.

Вышла новая, двенадцатая версия платформы Java. Как и в случае с Java 11, на сайте Oracle доступен для скачки только JDK и только для некоммерческого использования. Также доступны для скачки архивы OpenJDK, которые можно использовать в коммерческих целях...

Подробнее: https://telegra.ph/Vyshla-Java-12-03-19
В Java у NullPointerException могут появиться детальные сообщения.

Вышел новый черновик JEP, в котором предлагается улучшить java.lang.NullPointerException, снабдив его сообщением, объясняющим причину выброса исключения. В этом сообщении будет содержаться информация о том, что именно было null и какое действие вызвало ошибку.

Например, если в выражении a.b.c.d поле b было null, то сообщение будет примерно следующим: 'a.b' is null. Can not read field 'c'...

Подробнее: https://telegra.ph/NPE-detailed-messages-03-26
Oracle прекращает поддержку Java.

Компания Oracle решила отказаться от дальнейшего развития языка Java и перейти на Kotlin. С таким заявлением сегодня выступил главный архитектор платформы Java Марк Рейнолд. Как сказал Рейнолд, языку Java более 20 лет и в нём есть фундаментальные изъяны, которые невозможно исправить, не нарушив обратную совместимость. «Изъяны языка не должны препятствовать развитию всей платформы, поэтому мы решили отказаться от Java в пользу более современного языка, который был создан намного позже и учёл многие ошибки Java». При этом виртуальная машина HotSpot никуда не исчезнет и будет продолжать разрабатываться дальше, поскольку она не зависит от исходного языка и работает с байт-кодом...

Подробнее: https://telegra.ph/Java-is-dead-04-01
В Java появятся записи и запечатанные типы.

В багтрекере OpenJDK появился новый черновик JEP, в котором специфицируются новые языковые конструкции Java: записи и запечатанные типы. Идея их введения была предложена полтора года назад и была описана в исследовательском документе. Наконец, после долгих дискуссий и экспериментов она достигла достаточного уровня зрелости для того, чтобы с большой уверенностью сказать, что она будет реализована в одной из будущих версий Java...

Подробнее: https://telegra.ph/Records-and-Sealed-Types-04-23
В Java появятся блоки текста.

Стало известно, что блоки текста запланированы к появлению в Java 13. Блоки текста – это многострочные литералы, в которых нет необходимости экранировать большинство специальных символов и которые форматируются предсказуемым образом. Ранее попытка введения многострочных литералов уже предпринималась в форме так называемых сырых многострочных литералов, но JEP был отвергнут в связи с большим количеством потенциальных проблем, которые может принести такой подход. Блоки же текста – это совершенно новая спецификация, лишённая большинства недостатков предыдущего подхода...

Подробнее: https://telegra.ph/Text-Blocks-05-30
В switch-выражениях break будет заменён на yield.

Улучшенный оператор switch, который появился в Java 12 в статусе Preview, будет слегка изменён в Java 13 и будет продолжать оставаться в статусе Preview. Единственным изменением будет замена оператора break, служащего для возврата значения из блока, на yield...

Подробнее: https://telegra.ph/yield-in-switch-06-01
Вышла Scala 2.13.

Спустя два с половиной года после выхода Scala 2.12 вышла новая версия языка 2.13. В эту версию вошло более 1500 пулл-реквестов, а контрибьюторами стали 162 человека. Список изменений и нововведений довольно внушающий. Целью многих из них стало упрощение языка и стандартной библиотеки. Перечислим некоторые из них...

Подробнее: https://telegra.ph/Scala-213-06-11
В Java может появиться новая сериализация.

На сайте OpenJDK появился новый исследовательский документ, в котором описывается идея введения в язык новой улучшенной сериализации взамен старой.

Сериализация в Java существует с версии 1.1, то есть практически с момента её рождения. С одной стороны, сериализация является очень удобным механизмом, который позволяет быстро и просто сделать любой класс сериализуемым посредством наследования этого класса от интерфейса java.io.Serializable. Возможно даже, эта простота стала одной из ключевых причин, почему Java набрала такую огромную популярность в мире, ведь она позволила быстро и эффективно писать сетевые приложения...

Подробнее: https://telegra.ph/Towards-Better-Serialization-06-12
В Java появятся две новые экранирующие последовательности для продолжения строки и пробела.

Вышел новый черновик JEP, в котором предлагается ввести в язык Java две новые экранирующие последовательности: \<line-terminator> и \s.

Первая последовательность позволит писать длинные однострочные литералы без использования конкатенации. Например, вместо...

Подробнее: https://telegra.ph/Escape-Sequences-For-Line-Continuation-and-White-Space-08-15
Вышла Java 13

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

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

Подробнее: https://telegra.ph/Java-13-is-out-09-18
Пробуем улучшенный оператор instanceof в Java 14

Не за горами новая, 14-я версия Java, а значит самое время посмотреть, какие новые синтаксические возможности будет содержать эта версия Java. Одной из таких синтаксических возможностей является паттерн-матчинг по типу, который будет осуществляться посредством улучшенного (расширенного) оператора instanceof.

Сегодня я хотел бы поиграться с этим новым оператором и рассмотреть особенности его работы более детально. Так как паттерн-матчинг по типу ещё не вошёл в главный репозиторий JDK, мне пришлось скачать репозиторий проекта Amber, в котором ведётся разработка новых синтаксических конструкций Java, и собрать JDK из этого репозитория.

Подробнее: https://habr.com/ru/post/477654/