Библиотека Java разработчика
📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate. По всем вопросам @evgenycarter РКН clck.ru/3KoGeP
Больше📈 Аналитический обзор Telegram-канала Библиотека Java разработчика
Канал Библиотека Java разработчика (@bookjava) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 10 118 подписчиков, занимая 11 683 место в категории Технологии и приложения и 62 847 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 10 118 подписчиков.
Согласно последним данным от 26 августа, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -73, а за последние 24 часа — -3, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 6.99%. В первые 24 часа после публикации контент обычно набирает 3.71% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 707 просмотров. В течение первых суток публикация набирает 375 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 7.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как string, интерфейс, строка, boot, api.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate.
По всем вопросам @evgenycarter
РКН clck.ru/3KoGeP”
Благодаря высокой частоте обновлений (последние данные получены 27 августа, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
clone() должен вызываться super.clone();
✔️ Если какой-либо член класса не поддерживает клонирование, то в методе клонирования необходимо создать новый экземпляр этого класса и скопировать каждый его член со всеми атрибутами в новый объект класса, по одному.
Мы в MAX
👉@BookJava
public class API {
public static void enableLogging(boolean enable) {
AccessController.doPrivileged(new PrivilegedAction<Void>() {
public Void run() {
System.setProperty("log", String.valueOf(enable));
return null;
}
});
}
public static void runTask(Runnable task) {
try {
task.run();
} catch (ThreadDeath td) {
System.out.println("Task stopped.");
}
}
}
public class Service {
public static void log(String message) {
String shouldLog = System.getProperty("log", "true");
if (new Boolean("log")) {
System.out.print(message);
}
}
}
https://egahlin.github.io/2024/05/31/deprecated-event.html
Мы в MAX
👉@BookJava
# application.yml
spring:
threads:
virtual:
enabled: true # MVC, @Async, schedulers получат VirtualThreadPerTaskExecutor
📌 Ручной контроль (если нужен кастом)
@Bean
TaskExecutor vthreads() {
return new TaskExecutorAdapter(Executors.newVirtualThreadPerTaskExecutor());
}
// Привязать к @Async по умолчанию:
@Bean(name = {TaskExecutionAutoConfiguration.APPLICATION_TASK_EXECUTOR_BEAN_NAME})
TaskExecutor appExecutor() { return vthreads(); }
💡 Tomcat под Loom (MVC)
server:
tomcat:
threads:
max: 200 # это число платформенных (!) потоков, оставьте умеренным
💡 JDBC и пул соединений
Виртуальные потоки не отменяют лимиты БД. Не раздувайте пул, наоборот:
spring:
datasource:
hikari:
maximum-pool-size: 20 # ориентируйтесь на лимиты БД/кейсы, а не на «тысячи» v-threads
minimum-idle: 5
⚠️ Три частые ошибки
1. ThreadLocal-засады. Виртуальные потоки дешёвые, но ThreadLocal всё так же утекает. Используйте @Transactional /Context Propagation или ScopedValue вместо самодельных ThreadLocal.
2. Блокирующие HTTP-клиенты. Для массового I/O берите HttpClient (JDK) или WebClient c ограничением пула сокетов; не плодите соединения до бесконечности — узкое место сеть/БД.
3. Метрики и трейсинг. Обновите Micrometer/Brave до версий, корректно работающих с виртуальными потоками, и включите @Observed — без этого дебаг станет болью.
✅ Когда включать?
- Много блокирующего I/O (JDBC, REST к внешним сервисам) → почти всегда плюс.
- Чисто CPU-bound → выгоды мало, но и вреда нет.
Бонус: быстрый smoke-тест
IntStream.range(0, 10_000).parallel()
.forEach(i -> RestClient.create().get().uri("https://example.com").retrieve().toBodilessEntity());
С Virtual Threads сервер не «захлебнётся» потоками — упадёте ровно в реальные лимиты: БД, сеть, таймауты. Мониторьте их, а не «число потоков».
👉@BookJava@Transactional
В корпоративных приложениях транзакции обеспечивают согласованность и целостность данных.
Транзакция — это последовательность операций, выполняемых как единое логическое целое.
Все операции внутри транзакции либо успешно выполняются (commit), либо полностью откатываются (rollback).
Spring Boot упрощает управление транзакциями с помощью аннотации @Transactional, которая основана на декларативном механизме управления транзакциями Spring.
Это избавляет разработчиков от написания шаблонного кода для ручного управления транзакциями.
https://www.geeksforgeeks.org/springboot/spring-boot-transaction-management-using-transactional-annotation/
Мы в MAX
👉@BookJava