microJUG – Telegram
microJUG
981 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
Попросили порекламировать бесплатный Java-митап. Вроде норм ребята. Записываемся 👇

17 июня (то есть сегодня) пройдет бесплатный онлайн Java Meetup со спикерами из Red Hat и Levi9.

В программе:
— "По дороге c облаками, Quarkus, Java и Graal’ем", Алексей Лубянский, Principal Software Engineer в Red Hat
— "Производительность: нюансы против очевидностей", Сергей Цыпанов, Senior Java Developer в Levi9.

Модератор мероприятия: Дмитрий Панин, Levi9 Delivery Director.

Когда? 17 июня, 19:00 по Москве (GMT+3)
Где? Онлайн, бесплатно
Язык докладов: русский

👉 Регистрация
Вы уже перешли на Java 11+?
Final Results
59%
Уже да 😊
32%
Ещё нет 😔
9%
Посмотреть ответы
Вам надо отсортировать список List<Date> по возрастанию. Какой вариант вы выберете?
Final Results
4%
list.sort(null)
27%
list.sort(Comparator.naturalOrder())
31%
Collections.sort(list)
15%
Collections.sort(list, Comparator.naturalOrder())
23%
Затрудняюсь с ответом
Туплы или рекорды? Нахер всё, когда есть Map!
У шарпистов бомбит, что в Java паттерн-матчинг сделали лучше и гибче, чем в C#.
Например, возможность писать case String s && s.isBlank() — по-моему, это очень круто. Такой и должен быть паттерн-матчинг.
💉 Вы привились от COVID-19?
Final Results
34%
Да, обе дозы
13%
Первую дозу только
53%
Нет
Скомпилируется код или нет?
Final Results
72%
Скомпилируется
28%
Не скомпилируется
Какой способ предпочитаете?
#юмор
Мой топ фишек, ради которых хочется перейти на Java 16 (не язык, только JVM и API). То есть то, что появилось в Java 12-16:

Stream.toList()
Collectors.teeing()
String.formatted()
Аннотация java.io.Serial
Lookup.defineHiddenClass() (но не уверен, что смогу найти реальное применение)
JEP 341: Default CDS Archives (ну типа, всё быстрее будет стартовать)
JEP 346: Promptly Return Unused Committed Memory from G1 (приложение будет кушать меньше памяти)
JEP 358: Helpful NullPointerExceptions
Field layout computation overhaul (более компактные объекты). Ну и вообще подобного рода мелкие оптимизации, которые в целом делают JVM чуть-чуть быстрее.

А ради чего вы хотите перейти с Java 11 на более новую версию?
Тут в соседнем треде бурление по поводу логирования в Java. А какие библиотеки используются у вас для логирования?
Final Results
3%
java.util.logging
5%
Log4J (первая, древняя версия)
27%
Log4J 2
75%
SLF4J / Logback
1%
Apache Commons Logging
0%
tinylog
0%
System.Logger (JEP 264, Java 9+)
7%
Простой println
3%
Другое (напишу в комментариях)
В общем, что и требовалось доказать. Никита наехал на джавистов, что у нас чуть ли не каждый день создаётся по новой библиотеке логирования. А в реальности у нас по факту всего лишь две библиотеки, которыми пользуется подавляющее большинство: SLF4J и Log4J 2. Остальные библиотеки либо уже ископаемые и давно мертвы и забыты (Commons Logging, Log4J 1, JUL), либо слишком маргинальные (tinylog). Так что картина во все не настолько плохая, как это может показаться по началу.

Кстати, я уже далеко не первый раз слышу набросы по поводу логирования Java со стороны всяких людей. "Да зачем у вас так всё сложно", "Зачем вы переизобретаете каждый раз то же самое" — постоянно я вижу то в Твиттере, то где-то ещё. А ответ заключается в том, что у нас: а) несложно и б) немного. Библиотеки просто отделяют интерфейс от реализации. В чём здесь сложность? И никакой горы библиотек нет. В опросе я вспомнил лишь 6 библиотек. Это за всё время существования Джавы (26 лет!).
Всё-таки обратная совместимость в Java это сила! Вот так работаешь с проектом, а там зависимость, скомпилированная под Java 1.2. Джава Один Два, 1998 год! И ничего, всё работает, как часы.
Quiz Time! 👇
Такой код точно компилируется в Java 16, потому что стали разрешены статические декларации во внутренних классах. А скомпилируется ли в Java 15?
Final Results
29%
Не скомпилируется. Ошибка в обеих константах X и Y.
35%
Не скомпилируется. Ошибка только в константе Y. С X всё ОК.
36%
Скомпилируется.
Кто-нибудь может объяснить, почему в Идее отсутствуют кнопки разворачивания окон на весь экран? Неужели никого это не напрягает? 🤔
#IntelliJIDEA
Что объединяет все эти примеры кода?
Универсальные дженерики уже попали в репозиторий Valhalla. И там стоит релиз Java 18! Естественно, preview. Значит по логике мы сможем писать List<int> в Java 20. Поскорей бы.
#Java18 #Java20