Два способа создать Optional: один бросает NPE на null, второй — нет.
#java #джава #javadeveloper
Джун ❌ делит без точности и получает ArithmeticException. Сеньор ✅ указывает масштаб и RoundingMode — результат всегда корректен.
#java #джава #backend #javadev #bigdecimal #разработка
Java контейнер для значения, которого может не быть. За 20 секунд объясняю, как он спасает от NPE и чем orElse отличается от orElseGet.
#java #джава #backend #программист #javadev #разработка
Джун ❌ пишет finally с проверкой на null и вложенным try-catch. Сеньор ✅ использует try-with-resources — поток закроется сам.
#java #джава #backend #javadeveloper
Пробрасываем причину исключения, а получаем NullPointerException.
Разбираю ловушку getCause() за 30 секунд, чтобы ты не терял стек ошибок.
Смотри до конца, чтобы не наступить в проде.
#java #джава #javadeveloper #javadev #javadevelopment
Ленивые вычисления, которые не работают без терминальной операции. За 20 секунд объясняю, как устроен конвейер стримов.
Смотри, чтобы не забывать collect.
#java #джава #backend #javadev #разработка
Джун ❌ жмёт == и получает false там, где ожидал true. Сеньор ✅ всегда использует equals — сравнивает содержимое, а не ссылки.
Смотри за 10 секунд, чтобы не путаться в операторах.
#java #джава #backend #javadev #разработка
Потокобезопасная мапа без блокировки всей коллекции. За 20 секунд объясняю, как она работает и чем отличается от HashMap.
Смотри, чтобы не ошибиться с выбором.
#java #джава #backend #программист #javadev #разработка
Два атомарных getAndIncrement подряд не дают атомарности всей операции.
За 30 секунд разбираю, почему счётчик может выдать неожиданный результат в многопоточке.
Смотри до конца, чтобы не терять данные.
#java #джава #backend #программист #javadev #разработка
Очередь с принципом FIFO, приоритетами и двусторонним доступом. За 20 секунд объясняю, как она работает и какие есть реализации.
Смотри, чтобы выбирать правильную коллекцию.
#java #джава #backend #javadev
Джун ❌ пишет цикл с проверками и ручным обновлением. Сеньор ✅ считает частоту слов в одну строку через стрим.
#java #джава #backend #javadev #stream
Коллекция пар ключ-значение с уникальными ключами. За 20 секунд объясняю, как она работает и чем HashMap отличается от TreeMap.
Смотри, чтобы не путаться в реализациях.
#java #джава #backend
switch с null и default-веткой — все ждут, что сработает default, но прилетает NPE.
За 30 секунд разбираю, почему так и как обезопасить код.
#java #джава #javadeveloper
Джун ❌ возвращает null и ловит NPE при итерации. Сеньор ✅ всегда возвращает пустую коллекцию — код работа ет без ошибок.
Упорядоченная коллекция с доступом по индексу. За 20 секунд объясняю, как она работает и чем ArrayList отличается от LinkedList.
Смотри, чтобы не путаться в реализациях. #java #джава #backend #javadev
Ключ изменили после вставки — и значение таинственно исчезло.
За 30 секунд разбираю ловушку, в которую попадаются даже опытные разработчики.
#java #джава
Джун ❌ использует += и вручную проверяет последний элемент — громоздко и медленно. Сеньор ✅ решает в одну строку через String.join.
#java #джава #backend #программист #javadev #разработка
Коллекция без дубликатов за 30 секунд.
#java #джава #backend #javadeveloper
Написал цепочку map и filter, а список остался прежним.
За 30 секунд разбираю ловушку, в которую попадаются новички в Stream API.
Смотри до конца, чтобы не оставлять стримы без терминальной операции.
#java #джава #backend #программист #javadeveloper
