Java Portal | Программирование
11.6K subscribers
861 photos
67 videos
28 files
685 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
加入频道
*️⃣ Совет: чтобы сделать длинные и сложные цепочки компараторов более читаемыми, я люблю присваивать компараторами переменные, имена которых начинаются с "by".

🔜 Таким образом, вызов sorted() становится короче и читается почти как естественный язык. Дополнительно можно использовать статические импорты.

👉 Java Portal | #tips
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
☕️ Совет по времени: Обратите внимание на различие между equals() и isEqual() в классах для работы с датой и временем!

ZonedDateTime, OffsetDateTime и OffsetTime ведут себя по-разному:

equals(): Сравнивает все поля (включая зону/смещение)
isEqual(): Сравнивает моменты времени (игнорируя зону/смещение)

Один и тот же момент, но разный результат.

👉 Java Portal | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
К вашему вниманию — механизмы блокировки в Java ☕️

Это таблица, описывающая различные механизмы блокировки (Locking Mechanisms) в многопоточной среде. В ней представлены механизмы, их использование, производительность и наиболее подходящие сценарии применения.

👉 Java Portal | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Совет по Java:

При создании стандартных HttpHeaders для ответов Spring MVC, вместо того чтобы предоставлять их как строки, для некоторых есть специальные строители (Builders), которые позволяют создавать заголовки более безопасным с точки зрения типов способом. Смотри методы set() в HttpHeaders, которые можно настроить таким образом.

👉 Java Portal | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
Держи таблицу, сравнивающую различные фреймворки логирования для Java.

В ней указаны их назначение, производительность и рекомендации по использованию в разных типах проектов.

На заметку 🫡

👉 Java Portal | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Совет по Java:

Хотите быстро собрать некоторые данные в POST-запросе? Создайте быстрый встроенный объект в вашем @RestController и используйте его как @RequestBody . Нет необходимости определять DTO в отдельном классе. Он виден только в этом классе.

👉 Java Portal | #tips
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
💡 Совет по Java:

Чтобы получить все дни месяца, можно начать с объекта YearMonth, взять его первый день, а затем использовать функцию datesUntil(), которая возвращает поток (Stream) всех дней до указанной даты.

👉 Java Portal | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Подсказка: при использовании проекций на основе интерфейсов (interface-based projections) вы можете получить доступ к вложенным объектам, указав путь (path) в названии геттера. Посмотрите, как метод getDepartmentDeptName() получает deptName из связанной сущности Department

👉 Java Portal | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM