This media is not supported in your browser
VIEW IN TELEGRAM
Управляйте своим проектом как профессионал и повышайте продуктивность с лучшим сочетанием клавиш в IntelliJIDEA 👩💻
Используйте ⇧⇧ | Shift+Shift, чтобы мгновенно найти:
🟢 Классы, файлы, символы, действия или текст
🟢 Настройки редактора
🟢 Элементы интерфейса и многое другое! 🔥
👉 Java Portal | #tips
Используйте ⇧⇧ | Shift+Shift, чтобы мгновенно найти:
Please open Telegram to view this post
VIEW IN TELEGRAM
Шпаргалка по GitHub для начинающих
Этот список команд помогает пользователям быстро освоить базовые операции при работе с Git и GitHub.
👉 Java Portal | #tips
Этот список команд помогает пользователям быстро освоить базовые операции при работе с Git и GitHub.
Please open Telegram to view this post
VIEW IN TELEGRAM
Виды Dependency Injection в Spring Boot:
Инъекция через поля (Field Injection)
☑ Плюсы: Простота и краткость.
❌ Минусы: Трудно тестировать из-за приватности полей.
Инъекция через сеттеры (Setter Injection)
☑ Плюсы: Позволяет повторно внедрять зависимости при необходимости.
❌ Минусы: Делает зависимости изменяемыми, что может привести к ошибкам во время выполнения.
Инъекция через конструктор (Constructor Injection)
☑ Плюсы: Гарантирует неизменяемость и обеспечивает наличие всех необходимых зависимостей.
❌ Минусы: Требует больше шаблонного кода, если не использовать Lombok.
👉 Java Portal | #tips
Инъекция через поля (Field Injection)
Инъекция через сеттеры (Setter Injection)
Инъекция через конструктор (Constructor Injection)
Please open Telegram to view this post
VIEW IN TELEGRAM
Чтобы заставить её работать, необходимо использовать усиление байткода через плагин. Тогда поля, помеченные как ленивые, будут загружаться при первом обращении к ним.
Это делается через Maven-плагин
hibernate-enhance-maven-plugin
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Совет: если в Java Map нужно хранить несколько значений для одного ключа, можно использовать Apache Commons MultiValuedMap. Вы добавляете значения, а MultiValuedMap хранит их в List или Set.
👉 Java Portal | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
Стратегии распределения памяти в Java
🟡 Stack Memory (Стековая память) – используется для хранения вызовов методов, локальных переменных и деталей вызовов функций.
🟡 Heap Memory (Куча) – содержит динамически выделенные объекты и экземпляры классов, подлежит сборке мусора.
🟡 Metaspace (Метапространство) – хранит метаданные классов, определения методов и статические переменные.
🟡 Off-Heap Memory (Память вне кучи) – используется, например, для DirectByteBuffer в NIO и полезна при обработке больших объемов данных, не управляется сборщиком мусора.
Основные различия — скорость доступа, необходимость сборки мусора и предназначение каждого вида памяти.
👉 Java Portal | #tips
Основные различия — скорость доступа, необходимость сборки мусора и предназначение каждого вида памяти.
Please open Telegram to view this post
VIEW IN TELEGRAM
ZonedDateTime, OffsetDateTime и OffsetTime ведут себя по-разному:
equals(): Сравнивает все поля (включая зону/смещение)
isEqual(): Сравнивает моменты времени (игнорируя зону/смещение)
Один и тот же момент, но разный результат.
Please open Telegram to view this post
VIEW IN TELEGRAM
К вашему вниманию — механизмы блокировки в Java ☕️
Это таблица, описывающая различные механизмы блокировки (Locking Mechanisms) в многопоточной среде. В ней представлены механизмы, их использование, производительность и наиболее подходящие сценарии применения.
👉 Java Portal | #tips
Это таблица, описывающая различные механизмы блокировки (Locking Mechanisms) в многопоточной среде. В ней представлены механизмы, их использование, производительность и наиболее подходящие сценарии применения.
Please open Telegram to view this post
VIEW IN TELEGRAM
При создании стандартных HttpHeaders для ответов Spring MVC, вместо того чтобы предоставлять их как строки, для некоторых есть специальные строители (Builders), которые позволяют создавать заголовки более безопасным с точки зрения типов способом. Смотри методы set() в HttpHeaders, которые можно настроить таким образом.
Please open Telegram to view this post
VIEW IN TELEGRAM
Держи таблицу, сравнивающую различные фреймворки логирования для Java.
В ней указаны их назначение, производительность и рекомендации по использованию в разных типах проектов.
На заметку🫡
👉 Java Portal | #tips
В ней указаны их назначение, производительность и рекомендации по использованию в разных типах проектов.
На заметку
Please open Telegram to view this post
VIEW IN TELEGRAM
Хотите быстро собрать некоторые данные в POST-запросе? Создайте быстрый встроенный объект в вашем
@RestController
и используйте его как @RequestBody
. Нет необходимости определять DTO в отдельном классе. Он виден только в этом классе.Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Повышайте свою продуктивность, а именно: находите ответы быстрее прямо в IntelliJIDEA! 👩💻
🍩 Установите плагин Help Search через Настройки | Плагины | Маркетплейс.
🍩 Нажмите ⇧⇧ | Shift+Shift, перейдите на вкладку Help и ищите любую нужную информацию!
Вот ссылка на плагин: клик
👉 Java Portal | #tips
Вот ссылка на плагин: клик
Please open Telegram to view this post
VIEW IN TELEGRAM
Чтобы получить все дни месяца, можно начать с объекта
YearMonth
, взять его первый день, а затем использовать функцию datesUntil()
, которая возвращает поток (Stream) всех дней до указанной даты.Please open Telegram to view this post
VIEW IN TELEGRAM
getDepartmentDeptName()
получает deptName
из связанной сущности Department
Please open Telegram to view this post
VIEW IN TELEGRAM