| Канал | Публикаций | Подписчиков | Последний пост |
|---|---|---|---|
Java библиотека
[telegram]
|
64 | 31126 | 01.07.26 |
Java Guru 🤓
[telegram]
|
6 | 13293 | 30.06.26 |
|
Книги для Java программи…
[max]
|
22 | 1827 | 27.06.26 |
|
Java Guru
[max]
|
9 | 739 | 06.06.26 |
| Канал | Публикаций | Подписчиков | Последний пост |
|---|---|---|---|
|
Java News
[max]
|
19 | 98 | 29.06.26 |
|
Книги для Java программи…
[max]
|
3 | 1827 | 28.06.26 |
|
VK Tech
[max]
|
1 | 973 | 24.06.26 |
|
IT мероприятия России / …
[max]
|
2 | 1279 | 12.06.26 |
|
Java Guru
[max]
|
2 | 739 | 10.04.26 |
Загрузка данных...
| Размещенный пост | Текст публиакции | Рекламирующий канал | Просмотры | Просмотры 24 ч | Прирост подписчиков |
|---|
Загрузка данных...
| Размещенный пост | Текст публикации | Рекламируемый канал | Просмотры | Просмотры 24 ч | Прирост подписчиков |
|---|
| Дата и время публикации | Текст публикации | Рекламируемый канал | Динамика просмотров | Всего просмотров |
|---|---|---|---|---|
| 2026-07-01 19:49:51 | IntelliJ IDEA: продвинутый дебаг Представь, что есть цикл на 10 000 элементов, и баг воспроизводится только на одном конкретном объекте. Без Conditional Breakpoints придется жать F8 вручную сотни раз. А с ними дебаггер сам остановится в нужный момент. 🟢 Как включить Кликни правой кнопкой на кружок брейкпоинта → появится поле Condition. Введите любое булево Java-выражение. Всё, дебаггер будет останавливаться только когда оно true. 🟢 Примеры из реальной жизни ▪️ Фильтрация по ID user.getId() == 42 Останавливаемся только на конкретном пользователе — удобно при обработке списка сущностей из БД. ▪️ Фильтрация по содержимому строки request.getUrl().contains("/admin") Отлавливаем только определённые HTTP-запросы в фильтре или интерцепторе. ▪️ Ловим NPE до того, как он случился order.getItems() == null Останавливаемся именно тогда, когда данные уже сломаны, а не после падения. ▪️ Условие по индексу в цикле i == 999 Прыгаем сразу к последней итерации, не прокручивая весь цикл. 🟢 Продвинутые трюки — Log message вместо остановки. Если не хотите прерывать выполнение, а просто логировать — в том же окне брейкпоинта включите "Evaluate and log" и введите выражение. — Pass count. Чуть ниже в настройках брейкпоинта есть поле "Pass count" — брейкпоинт сработает только на N-м попадании. — Disable until hit. Можно настроить цепочку: один брейкпоинт активирует другой. В настройках есть "Disable until breakpoint is hit" — указываете другой брейкпоинт, и текущий начнёт работать только после срабатывания того. ⚠️ Condition вычисляется на каждом попадании в брейкпоинт — это вызов на стороне JVM. В горячих местах (tight loop, высоконагруженный метод) это может заметно тормозить приложение. IntelliJ IDEA: п… | — |
|
190 |
| 2026-06-30 20:32:49 | Java Generics — всё, что нужно знать 1. Box<T> → Обобщённый класс • Используй, когда класс работает с любым типом (например, обёртка вокруг любого объекта, как Box<User>, Box<Integer>). 2. <T> void print(T val) → Обобщённый метод • Используй, когда метод должен принимать любой тип (например, для печати любого объекта, логирования, сравнения и т.п.). 3. <T extends Number> → Ограниченный тип • Называется верхней границей. • Используй, когда тип должен быть подклассом чего-то (например, утилита для работы с int, double, float). 4. <T extends A & B> → Несколько ограничений • Заставляет T реализовывать и A, и B. • Используй, когда нужны обе особенности (например, сортировка объекта, который также требует валидации). 5. <?> → Неограниченный подстановочный тип • Это означает неизвестный тип. • Используй, когда не важен тип, нужно только читать (например, печать элементов из любого списка). 6. <? extends T> → Верхняя граница подстановочного типа • Означает некоторый подкласс T. • Используй при чтении из коллекции (например, чтение чисел из List<? extends Number> без модификации). 7. <? super T> → Нижняя граница подстановочного типа • Означает некоторый суперкласс T. • Используй при записи в коллекцию (например, добавление Integer в List<? super Integer>). 8. Правило PECS • Producer Extends, Consumer Super. • Используй extends для чтения, super для записи (например, API-вход против обработки ответа). 9. List list = new ArrayList(); → Сырой тип • Это сырой тип. • Избегай — тк теряется типовая безопасность (например, компилятор не поймает, если добавишь неверные типы). 10. Стирание типов • Java удаляет всю информацию об обобщениях во время выполнения. • Поэтому нельзя использовать T.class, new T(), или instanceof T (например, нельзя делать проверки или создавать объекты на основе T). 11. Обобщённый конструктор <T> MyClass(T val) { } • Используй, когда конструктору нужен обобщённый параметр, даже если сам класс не обобщённый (например, инициализация с динамическими типами). 12. Обобщённый интерфейс interface Mapper<F, T> { T map(F input); } • Используй при преобразовании одного типа в другой (например, DTO → сущность). 13. Нельзя использовать примитивы • Нельзя List<int> — только List<Integer>. • Используй обёртки (коллекции могут хранить только объекты, не примитивы). 14. Нельзя создавать массивы с обобщением • new T[] не работает. • Используй List<T> вместо (например, динамические коллекции). 15. Нельзя использовать подстановочные типы для вставки • Нельзя вставлять в List<? extends Number>. • Используй <? super Number>, если нужна вставка (например, для пакетной обработки или модификации коллекции). Java Generics — … | — |
|
310 |
| 2026-06-30 10:07:25 | Магия IntelliJ IDEA IntelliJ IDEA может помочь с созданием тестов. С помощью Ctrl + Shift + T можно сгенерировать структуру тестов для классов и методов. 🟢 Зачем это нужно — Вместо того, чтобы вручную писать шаблон тестов, IDEA сгенерирует базовую структуру тестов для классов или методов. — Особенно полезно, когда проект растет, а тестов слишком много, чтобы каждый раз выдумывать тестовую структуру с нуля. 🟢 Как использовать — Поместите курсор на класс или метод, для которого нужен тест. — Нажмите Ctrl + Shift + T (на Windows/Linux) или Cmd + Shift + T (на macOS). — Выберите, какой тестовый фреймворк использовать (JUnit, TestNG и т.д.), и IDEA предложит создать тестовый класс с нужной структурой. IDE автоматически создаст тестовый класс с методами для проверки каждого (или выбранного) публичного метода. Магия IntelliJ I… | — |
|
325 |
| 2026-06-29 15:01:01 | ORM — есть ли профит? Особенно когда по двору бегает ИИ-шка ORM — Object-Relational Mapping — Объектно-реляционное отображение — это технология, позволяющая связывать SQL-ые БД с ООП кодом. Самая известная из них — Hibernate. Hibernate — очень красивая технология. Она формирует ощущение магии. Ты просто создаёшь объект, — хлабысь! — он уже в базе данных. Никакого SQL, никаких соединений, никаких ResultSet. Всё происходит как будто само собой. Прелесть. Именно поэтому отказаться от Hibernate так тяжело. Читать статью Java News ORM — есть ли пр… |
|
|
37 |
| 2026-06-29 10:02:00 | 👩💻 Как работает @Transactional в Spring: границы транзакций и типовые ошибки Приглашаем на открытый урок. 🗓 29 июня в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «Разработчик на Spring Framework». На занятии мы разберем: ✔️Что реально делает @Transactional в Spring ✔️Почему важны proxy и вызов метода через Spring Bean ✔️Как работают propagation-режимы на примере REQUIRED и REQUIRES_NEW ✔️Когда происходит rollback и почему checked exceptions не всегда откатывают транзакцию ✔️Типовые ошибки при работе с транзакциями в сервисном слое Урок будет полезен Java/Kotlin-разработчикам, которые уже пишут приложения на Spring или начинают использовать Spring в реальных backend-проектах и хотят лучше понимать поведение транзакций. 🔗 Ссылка на регистрацию: https://vk.cc/cZa52o Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 👩💻 Как работает… | — |
|
302 |
| 2026-06-28 17:50:00 | Магия IntelliJ IDEA Если используешь Ctrl + P (подсказка параметров метода), то вот ещё один полезный хот кей: Shift + Ctrl + I → быстрый просмотр определения. 🟢 Зачем это нужно — Позволяет посмотреть реализацию метода/класса/интерфейса без перехода в другой файл. — Работает с любыми символами: методами, переменными, константами, даже SQL-мэпперами в MyBatis. — Незаменимо, если не хочешь терять контекст текущего кода. 🟢 Как использовать — Наведи курсор на метод, поле или класс, нажми Ctrl + Shift + I — появится всплывающее окно с реализацией. — Работает и в дебаге, и при просмотре внешних библиотек (если есть исходники). Магия IntelliJ I… | — |
|
188 |
Загрузка данных...
| Время | Контент | Подписчиков | Кто ссылался | Просмотры 48ч | Просмотры 24ч |
|---|