🎭 Optional.ofNullable() - как не стрелять себе в ногу NullPointerException Кажется, что Optional должен спасать от null. Но если перепутать Optional.of() с Optional.ofNullable() - получишь NPE там, где меньше всего ожидал. Это как заряжать пистолет, думая, что он игрушечный. Вот разбор, как не попасть в эту ловушку и когда что использовать 👇 📂 Шаг 1: В чём разница? (Одно слово - null) // Если value == null, то: Optional.of(value); // 🚨 Выбросит NPE Optional.ofNullable(value); // ✅ Вернёт Opt...
Java | Фишки и трюки
Java: примеры кода, интересные фишки и полезные трюки Купить рекламу: https://telega.in/c/java_tips_and_tricks ✍️По всем вопросам: @Pascal4eg
Графики
📊 Средний охват постов
📉 ERR % по дням
📋 Публикации по дням
📎 Типы контента
Лучшие публикации
20 из 20⌨️ Какой хеш-код имеет null? null не имеет хеш-кода, потому что null не является объектом. Однако, при использовании null в структурах данных, таких как HashMap или HashSet, применяется специальная логика: ➡️ Что происходит с null в HashMap и HashSet? ✔️ В HashMap ключ null всегда попадает в первый бакет (bucket 0). ✔️ В HashSet (который использует HashMap внутри) null также хранится в этом же бакете. ✔️ Проверки выполняются в Objects.hashCode(), который для null всегда возвращает 0. ➡️ Пример: ...
⌨️ Какие существуют модификаторы доступа? В Java модификаторы доступа определяют, из каких частей программы можно получить доступ к классу, методу или переменной. Всего их четыре: public – предоставляет полный доступ к классу или его членам из любого другого класса в любом пакете. Применяется для методов, полей и классов, которые должны быть доступны всем. protected – доступ к члену класса разрешен в пределах того же пакета и для подклассов, даже если они находятся в других пакетах. Используется...
☕️ Интерфейсы в Java В этом видео автор подробно разбирает, что такое интерфейсы в Java и чем они похожи на абстрактные классы. Вы узнаете об их ключевых отличиях, научитесь применять интерфейсы на практике и поймёте, в каких задачах они становятся незаменимым инструментом для создания гибкой и понятной архитектуры кода. 👉 Ссылка на первоисточник 🗣Запомни: интерфейсы — это контракты, которые определяют что должен делать класс, а не как. Это основа для написания слабосвязанного и тестируемого ...
📅 LocalDate и DateTimeFormatter: вечная путаница с YYYY и yyyy Каждый Новый год эта ошибка просыпается и незаметно портит данные в логах, отчётах и экспортах. Разница между YYYY и yyyy - всего одна буква, но она может сдвинуть дату на целый год вперёд или назад в первую неделю января. Вот как не попасть в эту ловушку и почему это происходит 👇 📁 Шаг 1: Наглядный пример ошибки (31 декабря 2024 года) DateTimeFormatter wrongFormatter = DateTimeFormatter.ofPattern("dd.MM.YYYY"); DateTimeFormatter ...
🔀 Stream.peek: подсматривать в замочную скважину опасно Кажется, что peek() — идеальный способ заглянуть внутрь стрима, посмотреть, что там происходит на каждом этапе, и ничего не сломать. Но Java — язык хитрый: иногда простое подсматривание меняет результат. Заглянул — и сломал. Разбираемся, когда peek() безобиден, а когда начинает колдовать 👇 🟢 Шаг 1: Что такое peek()? Stream.of("яблоко", "банан", "апельсин") .peek(s -> System.out.println("Обрабатываем: " + s)) .map(String::toUpperCase) .fo...
🧪 Тестируем приватные методы: хак или норма? (Спойлер: это запах) Тебе точно знакома ситуация: логика спрятана в приватном методе, а протестировать её «в лоб» нельзя. Первая мысль - рефлексия! Но это как использовать лом для починки часов. Сломаешь больше, чем починишь. Вот почему тестирование приватных методов - это сигнал о проблеме в дизайне класса, и как это исправить правильно 👇 🟢 Шаг 1: Типичный хак через рефлексию (как НЕ делать) import java.lang.reflect.Method; public class Calculator...
🪄 Магия @SneakyThrows в Lombok: как она обманывает компилятор Когда видишь @SneakyThrows, кажется, что нашёл волшебную палочку: checked-исключения больше не нужно объявлять в throws и ловить в try-catch. Но эта магия — не настоящее волшебство, а тонкая иллюзия, которая может сломать твой код в самый неподходящий момент. Давай заглянем под капот и узнаем, как эта аннотация обманывает компилятор, и почему с ней нужно быть осторожным 👇 🟢 Шаг 1: Как работают checked-исключения (обычный путь) // Б...
☕️ Java с нуля. Введение в ООП В этом видео автор предлагает нестандартный взгляд на объектно-ориентированное программирование. Он честно признаёт, что будет учить «неправильному» ООП, но именно с таким подходом вы столкнётесь в реальной индустрии — от работы с фреймворками до корпоративных проектов. Это прикладное введение, которое подготовит вас к реалиям разработки, а не к академической теории. ➡️ Ссылка на первоисточник 🗣️Запомни: в программировании важно не только знать, «как правильно», н...
⌨️ В чём разница между TreeSet и HashSet? TreeSet и HashSet — это два класса, реализующих интерфейс Set, но они имеют разные внутренние механизмы и свойства. Структура данных ✔️ HashSet использует хеш-таблицу для хранения элементов. Это позволяет быстро добавлять, удалять и искать элементы, не обеспечивая никакого порядка их хранения. ✔️ TreeSet использует красно-черное дерево (Red-Black Tree), что позволяет хранить элементы в отсортированном порядке (естественном порядке элементов или порядке, ...