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
Первый пулл-реквест на GitHub был интегрирован в JDK 16. На странице пулл-реквеста видно, как всё грамотно автоматизировано, и как автор и ревьюер с помощью команд могут управлять процессом. Большая часть работы при этом совершается ботами.
#java16 #skara
В Java 16 появится метод Stream::mapMulti, очень похожий на Stream::flatMap.
Разница с flatMap:
• В mapMulti не будет создаваться новый стрим на каждом шаге, а значит будет меньше накладных расходов.
• В некоторых случаях императивный маппер удобнее, чем возвращение стрима.
#java16 #stream
Будут ли языковые изменения в Java 16?

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

Во-первых, pattern matching for instanceof станет стабильной фичей (я крайне сомневаюсь, что будет третье превью, хотя на 100% это не исключено). Изменения будут следующими:
• Переменные паттернов не будут неявно final. Это сделает их согласованными с обычными переменными и параметрами методов/лямбд. То есть можно будет написать:
if (x instanceof String s) {
s = "abc"; // В Java 15 ошибка компиляции, в 16 - OK
}
• Предлагается запретить делать такие тесты, в которых тип выражения является подклассом типом паттерна. Например:
String x = "abc";
if (x instanceof String s) { // ошибка компиляции
...
}
Имхо, это плохое ограничение, и я против его введения (потому что будет несогласованность с обычным instanceof, где так можно делать).

Во-вторых, записи тоже станут стабильной фичей (и тоже третье превью маловероятно). Изменение будет только одно: предлагается разрешить объявлять статические члены во вложенных классах:
class A {
class B {
static void foo() { // OK
...
}
}
}

#java16 #records
Value-типы хотят переименовать во второй раз🤦‍♂️. Теперь это будут не inline-типы, а примитивные типы.
#valhalla
Какой вариант сравнения nullable переменной с константой вы предпочитаете?
Final Results
11%
if (nullable != null && nullable.equals(CONST))
66%
if (CONST.equals(nullable))
22%
if (Objects.equals(nullable, CONST))
1%
Свой вариант (напишу в комментариях)
Inline-типы должны скаляризоваться. Но только в C2. И если там не интерфейс. И вообще это не точно.
#valhalla
microJUG
Shenandoah попадёт в JDK 11.0.9. Релиз выйдет 20 октября 2020 года. #shenandoah
Походу, они обосрались, и не включили Shenandoah в AdoptOpenJDK 11.0.9.
P.S. Shenandoah есть в Azul Zulu и, само собой, в редхатовской сборке.
#shenandoah
Когда ночью случайно переключился в IDE на светлую тему
#юмор
😁1
Как позвать protected метод у класса в чужом пакете? Ловите простой трюк. Просто переопределяем метод в анонимном классе, и сразу же вызываем его на этом объекте:

new ClassWithProtectedMethod() {
@Override
protected void method() {
super.method();
}
}.method();

Заметьте, что метод даже не пришлось делать public.
В Java 16 появится метод Stream.toList(), который позволит конвертировать Stream в список. Сейчас это можно сделать с помощью Stream.collect(Collectors.toList()) и Stream.collect(Collectors.toUnmodifiableList()), однако toList() будет не только короче, но и эффективнее, поскольку не будет создавать никаких промежуточных массивов.

Кроме того, между всеми тремя способами есть различия:

collect(Collectors.toList()) не гарантирует неизменяемость, позволяет нули (по факту возвращает ArrayList)
collect(Collectors.toUnmodifiableList()) гарантирует неизменяемость, не позволяет нули
toList() гарантирует неизменяемость, позволяет нули (по факту возвращает неизменяемый список)
#java16 #stream
В сборщике мусора Shenandoah появится конкурентная обработка слабых ссылок (в т.ч. финализаторов). Это значит, что теперь использование слабых ссылок и finalize() не будет влиять на паузы GC. Изменение попадёт в Java 16.
#shenandoah #java16
This media is not supported in your browser
VIEW IN TELEGRAM
Когда проверяешь, как там поживает твой билд, и радуешься, что пока не упало ни одного теста
#юмор