Java Portal | Программирование
12.7K subscribers
1.25K photos
104 videos
38 files
1.2K links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
Download Telegram
Брейкпоинты в IDEA (IntelliJ и другие) для разработчиков

Иногда смотрю, как люди дебажат, и чуть ли не ловлю инсульт 🍺

Большинство разработчиков умеют только ставить и удалять брейкпоинты. А в IDEA есть куча полезных фич для отладки. Ниже самые годные:

[1] Условие остановки

Если метод вызывается часто или брейкпоинт стоит в цикле, не трать время, ожидая нужных значений:

▪️ПКМ по брейкпоинту
▪️В Condition добавь условие остановки. Можно использовать все доступные переменные, объекты и методы

[2] Динамически смотреть значения параметров

Вариант для новичков: добавить в код System.out.println с нужным полем/выражением.

Вариант для продвинутых:

▪️Зажми Shift и поставь брейкпоинт
▪️Отметь чекбокс Evaluate and log
▪️Введи нужное выражение

Дебаггер не будет останавливать выполнение, но будет писать значение выражения в консоль. Супер полезно для многопоточки, кода сторонних библиотек и remote debugging.

[3] Отключение брейкпоинта

Ненужный брейкпоинт можно не удалять, а просто выключить:

▪️Нажми на шестеренку у брейкпоинта
ИЛИ
▪️ПКМ по брейкпоинту → снимай галочку Enabled

[4] Массовая чистка

Когда в проекте много брейкпоинтов, IDE может чуть тормозить во время дебага. Чтобы убрать лишние, открой полный список:
▪️ПКМ по любому брейкпоинту
▪️Link More
▪️Слева будет список брейкпоинтов
▪️Удаляй ненужные

Обязательно попробуй. Пусть дебаг будет как по маслу 👍

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥6
Java 25: апгрейд, который экономит до 30% RAM (без правок кода)

В JDK 25 добавили одну из самых заметных оптимизаций за долгое время: Compact Object Headers (JEP 519).

Что меняется:

- размер заголовка объекта уменьшается примерно с ~12 байт до 8 байт
- меньше памяти на объект -> меньше heap
- меньше heap -> меньше давление на GC
- меньше GC -> сервис быстрее + облако дешевле

Где профит максимальный:
Spring Boot, микросервисы, DTO, records, кэши, в общем всё, где много мелких объектов.

Включается одной опцией:
-XX:+UseCompactObjectHeaders

По отзывам из реальных систем:
снижение heap на 15–30% встречается довольно часто.

Просто протестируй на своих сервисах и забирай “бесплатную” экономию.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
Java: Records не ограничены ролью просто контейнера данных, в них можно добавлять кастомные конструкторы и методы для валидации.

В records можно иметь конструкторы, статические методы и методы экземпляра:

public record Email(String address) {

// Конструктор с валидацией
public Email {
if (address == null || !address.matches("^[\\w-.]+@([\\w-]+\\.)+[\\w-]{2,4}$")) {
throw new IllegalArgumentException("Некорректный email-адрес: " + address);
}
}

// Метод экземпляра
public String domain() {
return address.substring(address.indexOf('@') + 1);
}

// Статический метод
public static Email from(String raw) {
return new Email(raw.trim().toLowerCase());
}
}



👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3