#полезное
😎 Thread.getState()
👉 Новости 👉 База вопросов
Thread.getState()
позволяет получить текущее состояние потока. Это полезно при отладке многопоточных программ, чтобы отслеживать, выполняется ли поток, заблокирован или завершён.Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #CIcd
🤔 Что такое контейнер?
Контейнер - это легковесный, изолированный пакет, содержащий код приложения, зависимости и настройки. Он позволяет запускать приложения независимо от среды, упрощая их развертывание и масштабирование.
👉 Новости 👉 База вопросов
Контейнер - это легковесный, изолированный пакет, содержащий код приложения, зависимости и настройки. Он позволяет запускать приложения независимо от среды, упрощая их развертывание и масштабирование.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 Интерфейс JpaRepository
Это готовое решение для CRUD-операций. Просто унаследуйся от
👉 Новости 👉 База вопросов
Это готовое решение для CRUD-операций. Просто унаследуйся от
JpaRepository<Entity, ID>
— и получи save, find, delete, update
без лишнего кодаPlease open Telegram to view this post
VIEW IN TELEGRAM
image_2025-05-27_07-57-06.png
255 KB
#полезное
😇 Java Lombok: Аннотация
Аннотация
🟠
🟠
🟠
🟠
🟠
👉 Новости 👉 База вопросов
@Data
— всё в одномАннотация
@Data
объединяет в себе несколько часто используемых аннотаций Lombok:@ToString
— генерирует метод toString()@Getter
— создаёт геттеры для всех нестатических полей@Setter
— создаёт сеттеры для всех нестатических полей@EqualsAndHashCode
— генерирует equals() и hashCode()@RequiredArgsConstructor
— создаёт конструктор для всех final и @NonNull
полейPlease open Telegram to view this post
VIEW IN TELEGRAM
#полезное
❤️🔥 Charset.forName()
👉 Новости 👉 База вопросов
Charset.forName()
позволяет получить кодировку по её названию и использовать её для преобразования строк. Это полезно при работе с различными кодировками, например, UTF-8, ISO-8859-1 и Windows-1251.Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #CIcd
🤔 Что такое Jenkinsfile?
Jenkinsfile - это текстовый файл, в котором описаны этапы CI/CD-пайплайна: сборка, тестирование, развертывание. Он позволяет управлять процессами Jenkins с помощью кода, обеспечивая прозрачность и повторяемость.
👉 Новости 👉 База вопросов
Jenkinsfile - это текстовый файл, в котором описаны этапы CI/CD-пайплайна: сборка, тестирование, развертывание. Он позволяет управлять процессами Jenkins с помощью кода, обеспечивая прозрачность и повторяемость.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 JDK 25: String::hashCode стал быстрее
В новой версии JDK 25 улучшили производительность класса String: теперь метод
Это значит:
– Меньше затрат в рантайме
– Быстрее работа с ключами в HashMap
– Эффективнее часто используемые строки
Подробнее
👉 Новости 👉 База вопросов
В новой версии JDK 25 улучшили производительность класса String: теперь метод
String::hashCode
в большинстве случаев сворачивается на этапе компиляции (constant folding).Это значит:
– Меньше затрат в рантайме
– Быстрее работа с ключами в HashMap
– Эффективнее часто используемые строки
Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😵💫 Совет по Java API
Используйте
Она помогает не допустить случайного добавления второго абстрактного метода в интерфейс, который должен быть функциональным.
Если вы попытаетесь добавить ещё один абстрактный метод в такой интерфейс, компилятор выдаст ошибку
👉 Новости 👉 База вопросов
Используйте
@FunctionalInterface
как защиту на уровне компиляцииОна помогает не допустить случайного добавления второго абстрактного метода в интерфейс, который должен быть функциональным.
Если вы попытаетесь добавить ещё один абстрактный метод в такой интерфейс, компилятор выдаст ошибку
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👋 ScopedValue.where()
👉 Новости 👉 База вопросов
ScopedValue.where()
позволяет безопасно передавать контекстные данные внутри потока, избегая утечек памяти и сложностей ThreadLocal
. Данные доступны только внутри заданного блока кода.Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #bash
🤔 Как удалить все .log файлы в директории?
Чтобы удалить все
Для удаления в подкаталогах используйте:
👉 Новости 👉 База вопросов
Чтобы удалить все
.log
файлы в текущей папке, выполните:rm *. log
Для удаления в подкаталогах используйте:
find . -name "*.1og" -delete
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🫡 В этом гайде автор показывает, как парсить структурированные строки в Java
Большинство разработчиков используют регулярные выражения,
Класс
👉 Новости 👉 База вопросов
Большинство разработчиков используют регулярные выражения,
split()
или ручную нарезку строк. Но эти техники подвержены ошибкам, плохо читаются и, что важнее всего — небезопасны на этапе компиляции.Класс
StringFormat
делает парсинг настолько простым, что даже новичок может реализовать его в одну строку.Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😊 В этом гайде автор делится, как писать удобные интеграционные тесты в Spring Boot
Многие разработчики либо перегружают
Класс
👉 Новости 👉 База вопросов
Многие разработчики либо перегружают
@SpringBootTest
, либо пишут сложные конструкции с @MockBean
. Но такие подходы тормозят сборку, плохо читаются и, что важнее всего — дают ложное чувство покрытия.Класс
MockMvc
и аннотация @WebMvcTest
делают тестирование контроллеров лёгким и быстрым, можно проверить весь HTTP-флоу без запуска сервера.Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Совет по Java: предпочитай внедрение через конструктор, а не через поля
На то есть разные причины:
🟠 Зависимости можно пометить как
🟠 Повышает надёжность класса и безопасность при работе с потоками
🟠 Заставляет вызывающий код (или DI-контейнер) передать все необходимые зависимости
🟠 Упрощает модульное тестирование, позволяя подставлять моки или стабы через конструктор
🟠 Все зависимости видны в конструкторе, что чётко показывает, что нужно классу для работы.
🟠 Внедрение через конструктор не использует рефлексию или доступ к приватным полям (в отличие от внедрения через поля), что повышает производительность и снижает риски
👉 Новости 👉 База вопросов
На то есть разные причины:
final
, гарантируя, что они не изменятся после создания.Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #bash
🤔 Как вывести только каталоги в папке?
Чтобы отобразить только папки, используйте:
Или команду
👉 Новости 👉 База вопросов
Чтобы отобразить только папки, используйте:
Is -d */
Или команду
find
:find . -type d
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤯 JLine TerminalBuilder.build()
Документация
👉 Новости 👉 База вопросов
TerminalBuilder.build()
из библиотеки JLine
позволяет создавать интерактивные терминалы с поддержкой ANSI-цветов, автодополнения и управления вводом. Это полезно для создания CLI-приложений с удобным интерфейсом.Документация
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 Ставить
🟠 Использовать
🟠 Использовать транзакции на уровне методов — Даёт точный контроль и ясность
🟠 Использовать
🟠 Избегать
🟠 Оставлять транзакционные методы
🟠 Логировать или отслеживать поведение транзакций — Помогает выявлять неожиданные проблемы
👉 Новости 👉 База вопросов
@Transactional
везде подряд плохая практика — сначала разберись, когда он действительно нужен:@Transactional
только в сервисном слое — Отделяет бизнес-логику от веб-логики@Transactional(readOnly = true)
— Оптимизирует операции только для чтения@Transactional
в репозиториях — Репозитории не должны управлять транзакциямиpublic
— Необходимо для работы Spring-проксиPlease open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🥄 Это просто огонь. В одном из следующих релизов jetbrains / intellijidea появится фича, которая позволяет в пару кликов сгенерировать JPA-энтити из существующей схемы БД
И ещё, мне сказали, что SpringData JDBC тоже скоро завезут
👉 Java Portal
И ещё, мне сказали, что SpringData JDBC тоже скоро завезут
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #bash
🤔 Как посчитать количество строк в файле?
Для подсчёта строк в файле используйте:
Эта команда выведет количество строк в файле.
👉 Новости 👉 База вопросов
Для подсчёта строк в файле используйте:
wc -1 file.txt
Эта команда выведет количество строк в файле.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 Java API Tip
Безопасное приведение
Используй
Без него преобразование произойдёт молча — и ты можешь получить некорректный результат без всяких ошибок.
Используй
👉 Новости 👉 База вопросов
Безопасное приведение
long
к int
Используй
Math.toIntExact()
— этот метод возвращает значение long, но выбрасывает ArithmeticException
, если оно не помещается в int
Без него преобразование произойдёт молча — и ты можешь получить некорректный результат без всяких ошибок.
Используй
toIntExact
, когда важно контролировать переполнениеPlease open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM