Попросили порекламировать бесплатный 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)
Где? Онлайн, бесплатно
Язык докладов: русский
👉 Регистрация
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)
Где? Онлайн, бесплатно
Язык докладов: русский
👉 Регистрация
Вам надо отсортировать список List<Date> по возрастанию. Какой вариант вы выберете?
Final Results
4%
list.sort(null)
27%
list.sort(Comparator.naturalOrder())
31%
Collections.sort(list)
15%
Collections.sort(list, Comparator.naturalOrder())
23%
Затрудняюсь с ответом
Какой у вас процесс ревью?
Final Results
82%
Пост-коммит. Изменения лежат во временном бранче, а потом мёржатся в основной.
4%
Пост-коммит. Изменения сразу попадают в основной бранч, а оттуда ревьюятся.
5%
Пре-коммит. Изменения вообще не коммитятся никуда, пока их не проверят.
3%
Парное программирование
10%
Ревью вообще отсутствует
1%
Другое (напишу в комментах)
Мой топ фишек, ради которых хочется перейти на 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 на более новую версию?
• 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 со стороны всяких людей. "Да зачем у вас так всё сложно", "Зачем вы переизобретаете каждый раз то же самое" — постоянно я вижу то в Твиттере, то где-то ещё. А ответ заключается в том, что у нас: а) несложно и б) немного. Библиотеки просто отделяют интерфейс от реализации. В чём здесь сложность? И никакой горы библиотек нет. В опросе я вспомнил лишь 6 библиотек. Это за всё время существования Джавы (26 лет!).
Такой код точно компилируется в Java 16, потому что стали разрешены статические декларации во внутренних классах. А скомпилируется ли в Java 15?
Final Results
29%
Не скомпилируется. Ошибка в обеих константах X и Y.
35%
Не скомпилируется. Ошибка только в константе Y. С X всё ОК.
36%
Скомпилируется.
Кто-нибудь может объяснить, почему в Идее отсутствуют кнопки разворачивания окон на весь экран? Неужели никого это не напрягает? 🤔
#IntelliJIDEA
#IntelliJIDEA
Универсальные дженерики уже попали в репозиторий Valhalla. И там стоит релиз Java 18! Естественно, preview. Значит по логике мы сможем писать
#Java18 #Java20
List<int> в Java 20. Поскорей бы.#Java18 #Java20
GitHub
universal type variables: initial prototype · openjdk/valhalla@3e896fa
Reviewed-by: mcimadamore