microJUG – Telegram
microJUG
982 subscribers
155 photos
1 video
2 files
237 links
Мысли о Java.
Основной канал: @miniJUG
Буст: https://news.1rj.ru/str/microJUG?boost
Чат: https://news.1rj.ru/str/micro_JUG
Таблица JEP'ов: https://minijug.org/jeps.html
Download Telegram
Кстати, если вам нужен список всех возможных дистрибутивов JDK со ссылками на скачивание, то его можно найти здесь. Кажется, что в этом списке собрано вообще всё. Тут есть Oracle JDK (начиная с JDK 1.1), Oracle OpenJDK, AdoptOpenJDK, IBM J9, RedHat OpenJDK и т.д. Есть даже JetBrains Runtime. Некоторые из них я сам вижу впервые (например, Alibaba Dragonwell и Pivotal Spring Runtime).
📬 На какие списки рассылок OpenJDK подписаться, чтобы быть в курсе событий?

Вот мой TOP 5:
jdk-dev – обсуждение самых разнообразных тем, касающихся JDK. Здесь же объявляются все новые JEP'ы.
core-libs-dev – обсуждение стандартной библиотеки, багов в ней, добавление новых API.
compiler-dev – компилятор javac.
amber-spec-observers – пожалуй, самый интересный список рассылки. Здесь члены экспертной группы обсуждают новые языковые возможности.
amber-dev – это про то же самое, но здесь больше обсуждают конкретную реализацию этих возможностей в JDK (баги, несоответствие спецификации и реализации и т.п.). В общем, граница размыта, так что лучше подписаться на оба.
А вот это действительно прикольно. Теперь IDEA применяет Data Flow Analysis прямо к "живым" данным во время отладки: https://blog.jetbrains.com/idea/2020/01/dfa-debugger/
Подъехали результаты ежегодного технологического опроса от JRebel.
• Java 8 всё ещё сильно доминирует со своими 58%. Но 28% уже использует Java 11 и выше, что не может не радовать.
• Доля Eclipse совсем упала: 24% против 82% у Идеи.
• Gradle и Maven примерно наравне (47% и 44%).
А давайте кстати сверим результаты с JRebel'овскими. Мы ведь тоже можем тут голосовать. Какие языки используете?
Final Results
7%
Java 7 или более старые
70%
Java 8
2%
Java 9/10
32%
Java 11
13%
Java 12 или выше
10%
Groovy
7%
Scala
21%
Kotlin
Build tools
Final Results
41%
Gradle
70%
Maven
8%
Ant
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");

for (String str : list) {
if (str.equals("2")) {
list.remove(str);
}
}

System.out.println(list);
Что произойдёт, если запустить код выше?
Final Results
66%
ConcurrentModificationException
34%
Будет выведено [1, 3]
Многие проголосовали за первый вариант, справедливо полагая, что удаление из ArrayList во время итерирования должно выбрасывать исключение. Но в данном случае ConcurrentModificationException не выбрасывается из-за бага. Такой баг проявляется, только если удалять предпоследний элемент. Кстати, баг чинить не будут.
Ух ты, --illegal-access=deny будет по умолчанию в Java 16. Так сказал Марк Рейнолд на конференции JFokus. Это значит, что любителям setAccessible(true) придётся включать ключик, чтобы их программа продолжала работать.
Ребята, Helpful NullPointerExceptions в Java 14 – пушка! Включаются ключом -XX:+ShowCodeDetailsInExceptionMessages
Появился новый черновик JEP для instanceof. Разница со старым – добавили deconstruction patterns:

record Point(int x, int y) {}

if (obj instanceof Point(var a, var b)) {
System.out.println(a+b);
}


Но пока, похоже, это будет работать только для записей. В любом случае, хорошо, что всё по-маленьку движется в сторону полноценного паттерн-матчинга.
Не знаю как вам, а мне идея нравится! Добавить в язык стандартную аннотацию @Language, чтобы можно было указывать тип языка в блоках текста. Представляете, писать какой-нибудь SQL прямо внутри литерала, а там будет автокомплит, подсветка, валидация...
Тут меня справедливо поправили, что всё это в IntelliJ IDEA уже давно есть. И даже есть аннотация @Language. Правда она нестандартная. Но ещё можно использовать комментарий //language=<language_ID>, если не хочется тащить библиотеку ради аннотации.
Тут люди обсуждают, как бы упростить синтаксис if (!(x instanceof String y)), а Тагир просто взял и реализовал это в IDEA безо всяких изменений языка. Удивительно, что до такой простейшей вещи не додумались раньше.
Может, немного поздновато, но на всякий случай информирую, что на YouTube появились видео докладов с Joker 2019.
#joker
Будет ли вам интересно, если я сюда буду кидать ссылки на интересные доклады? Вот, например, доклад Тагира Валеева про трансляцию switch в байт-код. Мне кажется, у него незаслуженно мало просмотров, хотя доклад очень познавательный и полезный.
Стоит ли постить ссылки на доклады?
Final Results
95%
Да
5%
Нет