ru
Feedback
Библиотека Java разработчика

Библиотека Java разработчика

Открыть в Telegram

📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate. По всем вопросам @evgenycarter РКН clck.ru/3KoGeP

Больше

📈 Аналитический обзор Telegram-канала Библиотека Java разработчика

Канал Библиотека Java разработчика (@bookjava) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 10 274 подписчиков, занимая 12 049 место в категории Технологии и приложения и 63 967 место в регионе Россия.

📊 Показатели аудитории и динамика

С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 10 274 подписчиков.

Согласно последним данным от 08 июня, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило 23, а за последние 24 часа — -6, при этом общий охват остаётся высоким.

  • Статус верификации: Не верифицирован
  • Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 8.31%. В первые 24 часа после публикации контент обычно набирает 4.05% реакций от общего числа подписчиков.
  • Охват публикаций: В среднем каждый пост получает 854 просмотров. В течение первых суток публикация набирает 416 просмотров.
  • Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 6.
  • Тематические интересы: Контент сосредоточен на ключевых темах, таких как string, интерфейс, строка, boot, api.

📝 Описание и контентная политика

Автор описывает ресурс как площадку для выражения субъективного мнения:
📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate. По всем вопросам @evgenycarter РКН clck.ru/3KoGeP

Благодаря высокой частоте обновлений (последние данные получены 09 июня, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.

10 274
Подписчики
-624 часа
-37 дней
+2330 день
Архив постов
Совет 💡 Добавьте в JDBC URL свойство ApplicationName (зависит от БД, не в каждой БД оно есть!). Таким образом, в списке сесс
Совет 💡 Добавьте в JDBC URL свойство ApplicationName (зависит от БД, не в каждой БД оно есть!). Таким образом, в списке сессий вместо имени JDBC-драйвера будет отображаться имя набора. Это поможет при поиске неисправностей, когда несколько приложений подключаются к одной и той же БД. 👉@BookJava

🔥What’s the Hack? ЭКСПО! Этим летом с 1 по 10 августа прими участие в хакатоне от Экспобанк, реши задачу по созданию системы
🔥What’s the Hack? ЭКСПО! Этим летом с 1 по 10 августа прими участие в хакатоне от Экспобанк, реши задачу по созданию системы управления клиентскими базами для компаний-партнеров Экспобанка и получи возможность забрать вознаграждение из призового фонда в 400.000 рублей! Регистрируйся на хакатон до 29 июля включительно: https://экспохак.рф 🌐Хакатон пройдет в формате Онлайн - 9 дней интенсивной работы над проектом, а 10-го августа участники защищают свои решения перед представителями из компаний-партнеров Экспобанка! 🚀Главная цель – создать единый механизм управления клиентскими базами, позволяющий оптимизировать взаимодействие с клиентами и предлагать различные услуги из разных компаний, входящих в число компаний-партнеров Экспобанка. . 👨‍💻К участию приглашаются разработчики, Product менеджеры, IT-специалисты и бизнес-архитекторы. На протяжении всего хакатона Вас ждут регулярные сессии с экспертами, которые помогут скорректировать Ваши идеи в нужно русло! 📌Ключевые события хакатона: 29 июля – Завершение подачи заявок 1 августа – Церемония открытия 2 и 5 августа – Индивидуальные сессии с экспертами 7 августа – Общая встреча с экспертами 10 августа – Финальный питч и Церемония закрытия 🏆Успей зарегистрироваться на хакатон и побороться за призовой фонд в 400.000 рублей! What’s the Hack? ЭКСПО! Подробная информация и регистрация: https://экспохак.рф

🚀 Расширенные советы по Spring Boot🚀 Создание собственного FailureAnalyzer Перехват исключений при запуске и преобразование
🚀 Расширенные советы по Spring Boot🚀 Создание собственного FailureAnalyzer Перехват исключений при запуске и преобразование их в человекочитаемые сообщения эффективно достигается с помощью FailureAnalyzer в Spring Boot 🔥. https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto.application.failure-analyzer 👉@BookJava

Совет Spring Framework💡 Вы можете автосопрягать несколько бинов, реализующих определенный интерфейс, в список, содержащий вс
Совет Spring Framework💡 Вы можете автосопрягать несколько бинов, реализующих определенный интерфейс, в список, содержащий все реализации. Определите список с общим типом, который вы хотите использовать. Вы можете использовать инъекцию конструктора, как показано на картинке, или инъекцию поля. 👉@BookJava

Летняя распродажа в Слёрме: -50% на все видеокурсы из списка С 17 по 31 июля в Слёрме на все видеокурсы из этого списка скидк
Летняя распродажа в Слёрме: -50% на все видеокурсы из списка С 17 по 31 июля в Слёрме на все видеокурсы из этого списка скидка 50% по промокоду LETO2024. До старта бизнес-сезона осталось меньше половины лета. Пока на вас не свалилось 500 новых проектов, можно спокойно разобраться в новом инструменте, подходе или методике. Время до сентября — лучшее, чтобы прокачать свой стек 😉 ➡ Доступ к видеоурокам сохранится на 2 года ➡ Вы можете спланировать учёбу на год вперёд, купить дешевле и учиться в любое время ➡ Рассрочка действует и на акционные цены Выбирайте курсы и пойдём учиться! ⚡️ В КАТАЛОГ КУРСОВ ⚡️

Эффективность Spring-приложений в рантайме. Текущее состояние дел и планы на будущее Перевод статьи об оптимизации Spring-при
Эффективность Spring-приложений в рантайме. Текущее состояние дел и планы на будущее Перевод статьи об оптимизации Spring-приложений. Рассматриваются как уже доступные GraalVM Native Image и Project CRaC, так и будущие оптимизации, входящие в Project Leyden. В свете недавнего выхода Spring Framework 6.1 и Spring Boot 3.2, мы хотели бы поделиться обзором тех усилий, которые предпринимает команда Spring, чтобы позволить разработчикам оптимизировать эффективность их приложений во время выполнения. https://habr.com/ru/companies/spring_aio/articles/824328/ 👉@BookJava

How to map Java Enum to custom values with JPA and Hibernate Заметка, в которой рассказывается о том, как маппить Enum не в имя или порядковый номер, а в какое-то кастомное поле, содержащееся в енаме, используя для этого кастомный конвертер. https://vladmihalcea.com/java-enum-custom-values/ 👉@BookJava

⁉️ Kafka vs RabbitMQ — что выбрать? Наш открытый урок — ваш шанс раз и навсегда понять, какая система лучше подходит для ваши
⁉️ Kafka vs RabbitMQ — что выбрать? Наш открытый урок — ваш шанс раз и навсегда понять, какая система лучше подходит для ваших задач. Мы разберем ключевые различия между RabbitMQ и Apache Kafka, включая их архитектуру, производительность, способы хранения сообщений и внутреннюю организацию. Вы увидите демонстрацию работы брокеров сообщений и получите сравнительный анализ, который поможет вам сделать осознанный выбор. 25 июля в 20:00 мск, ждем вас на открытом уроке, который пройдет в рамках онлайн-курса «Java Developer. Professional» в OTUS. Занятие предназначено для разработчиков и архитекторов ПО. 👉 Записывайтесь на бесплатный вебинар «Kafka vs RabbitMQ: выбор правильной системы сообщений» прямо сейчас: https://vk.cc/cytTD7 🎫 Начните обучение со скидкой в 10%, действует до конца июля. Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Советы по Java 💡 Как инициализировать collections или map в Java? Конечно, вы можете использовать, например, статическую ини
Советы по Java 💡 Как инициализировать collections или map в Java? Конечно, вы можете использовать, например, статическую инициализацию фабрики (`List.of(...)` или `Map.of(...)`). Но вы также можете воспользоваться функцией "инициализации двойной скобкой" 👉@BookJava

Совет по Java ☕️ В Java 22 появился новый форматированный тип ListFormat. Он создает или разбирает список конкатенированных с
Совет по Java ☕️ В Java 22 появился новый форматированный тип ListFormat. Он создает или разбирает список конкатенированных строк с учетом локальных особенностей. Предусмотрено 3 типа конкатенации: STANDARD, OR и UNIT, и 3 стиля для каждого типа: FULL, SHORT и NARROW. 👉@BookJava

🤝 Не дай себя завязнуть в рутинных задачах! 🦾 Осваивай Spring и выходи на новый профессиональный уровень Пройди тест по Jav
🤝 Не дай себя завязнуть в рутинных задачах! 🦾 Осваивай Spring и выходи на новый профессиональный уровень Пройди тест по Java от OTUS Проверь насколько хорошо ты знаешь Java и готов освоить Spring! Ответишь — пройдешь на продвинутый курс "Разработчик на Spring Framework" от OTUS по специальной цене. 👉 ПРОЙТИ ТЕСТ: https://vk.cc/cysfVZ 🎫 Начни обучение со скидкой в 10%, действует до конца июля. Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Spring Boot Microservices проект электронной коммерции: пошаговое руководство В этом уроке мы создадим простое приложение для
Spring Boot Microservices проект электронной коммерции: пошаговое руководство В этом уроке мы создадим простое приложение для электронной коммерции, используя архитектуру микросервисов с Spring Boot и Spring Cloud. Мы создадим следующие микросервисы: ⚫️Сервис продуктов: Управляет информацией о продукте. ⚫️Сервис заказов: Управляет заказами клиентов. ⚫️Inventory Service: Управляет инвентаризацией продукции. ⚫️Сервер Eureka Server: ⚫️Обнаружение сервисов. ⚫️Шлюз API: Действует как единая точка входа в систему. https://www.sourcecodeexamples.net/2024/05/spring-boot-microservices-e-commerce-project.html 👉@BookJava

Бывают ли в Java утечки памяти? Сначала стоит сказать, что это такое. Утечка памяти (memory leak) в широком смысле – потеря доступа к некоторой сущности, которая при этом всё еще остается «живой» и расходует ресурсы компьютера. Основное отличие Java от языков вроде C – автоматическое управление памятью. В общем случае вам не нужно думать об удалении объекта из памяти. Когда он перестал быть нужен, сборщик мусора сделает это за вас. Но всё-таки бывают случаи, когда JVM не способна помочь, и прибираться за собой нужно вручную: 1. Объекты в статических полях. Обычно они живут пока живёт класслоадер, который обычно живет до конца работы приложения. В эту же группу риска попадают синглтоны, которые обычно базируются на статиках. Отдельного внимания заслуживает случай утечки ThreadLocal. 2. Взаимодействие с нативным кодом и ручное управление памятью. Когда вы решаетесь на ручное/внешнее управление, вся ответственность за сборку мусора переходит на вас. Это касается использования Unsafe и нативных библиотек. Сюда же попадают различные утечки внешних ресурсов: например соединений с базой через нативный драйвер. 3. Неправильное использование коллекций. Несогласованность методов equals-hashCode может позволить ключам теряться внутри HashMap/HashSet. Размер зарезервированной памяти часто не совпадает с размером содержимого: тот же HashMap, однажды раздувшись, не умеет уменьшаться. 4. Использование finalize. Вмешиваясь в нормальную работу GC, вы, естественно, можете её нарушить. Поток финализации имеет низкий приоритет – даже корректная реализация метода может не успеть выполниться и привести к OutOfMemoryError. 5. Утечка inner-класса. В отличие от nested, inner класс содержит неявную ссылку на своего хозяина. Так что экземпляр хозяина гарантированно будет жить пока живут экземпляры его inner-классов. 6. Интернированные строки. Вызовом String.intern() вы подписываетесь под тем, что осознаете что делаете. Ручное использование оптимизационных хитростей JVM не может не сопровождаться риском. Поведение этого метода зависит от версии Java и реализации JVM. 7. Паттерн Flyweight/object pool. И пул строк, и вся модель памяти реализуют его. Неправильная программная реализация паттерна также может привести к утечке объектов – зависанию их в пулле без реальных применений снаружи. 8. Всевозможные логические утечки. Нарушение консистентности модели бизнес-данных может приводить к забытым объектам. Технически это всё еще один из пунктов выше. Типичный пример такой утечки – утечка Activity в Android. Так что ответ на вопрос – редко, но бывают. 👉@BookJava

Как отладить удаленное приложение? Если приложение работает не в продакшне, его паузы допустимы, а у потенциального злоумышленника нет сетевого доступа к хосту, стандартный способ отладки – непосредственно remote debug. Для этого приложение запускается с включенным протоколом удаленной отладки JDWP. Приложение принимает на указанный порт подключения отладчика. Это может быть отдельная утилита jdb, или встроенная в IDE. В JDK поставляется набор инструментов для мониторинга. Например Java Mission Control и JConsole позволяют подключиться к приложению и посмотреть множество показателей его здоровья. Полный список инструментов специфичен для конкретной JVM, для HotSpot можно посмотреть в документации. Вне зависимости от обстоятельств, всегда необходимо заранее позаботиться о диагностической информации номер один – логах. Как минимум, ни один встроенный инструмент не покажет вам информацию о событиях, определяемых бизнес-логикой вашего приложения. Логироваться должен необходимый минимум, который позволит при любом инциденте понять, что произошло. В стандартную поставку Java включен пакет для логгирования java.util.logging, позже остановимся на нём подробнее. Также существует ряд популярных библиотек: Log4j, SLF4J, Logback. Про техники и сложности логгирования современного энтерпрайза есть неплохой доклад. 👉@BookJava

⚛️Росатом ищет разработчиков на позицию Backend Developer (Java) HR TECH в Гринатом (IT-интегратор Росатома) Требования: опыт разработки и поддержки микросервисов на Java; опыт работы с реляционным базами данных (PostgreSQL); опыт проведения Сode Review; знание основных методологий разработки программного обеспечения, принципов OOП, шаблонов проектирования, принципов SOLID, DRY, KISS; практика использования Test Containers в интеграционных тестах; отличное знание Spring/Spring Boot (Core, MVC/Webflux, Data/Integration, Security, Actuator, Auto configuration, AOP); опыт работы с Kafka; хорошее знание Maven/Gradle и CI/CD систем(Gitlab/Jenkins); профилирование кода, анализ дампов памяти, анализ логов, метрик и трассировок, тонкая настройка JVM. Мы предлагаем: полностью удалённую работу на территории РФ или рабочее место в уютном офисе; конкурентную ЗП и премии, оформление по ТК с удобным графиком, выбор между удалёнкой и офисом, карьерный рост, ДМС со стоматологией, собственную платформу для обучения, конференции и тренинги. 👉Узнать подробнее и откликнуться можно по ссылке.

Совет 💡 Если вы хотите получить сообщение о первопричине, вы можете легко и безопасно получить его с помощью Apache Commons
Совет 💡 Если вы хотите получить сообщение о первопричине, вы можете легко и безопасно получить его с помощью Apache Commons ExceptionUtils. Методы getRootCauseMessage(Exception ex) выдают сообщение в виде {ClassNameWithoutPackage} {ThrowableMessage} 👉@BookJava

Курс по Kubernetes для разработчиков. Видеокурс по Docker в подарок ⤵️ ❓ Ваша компания решила мигрировать сервисы на Kubernet
Курс по Kubernetes для разработчиков. Видеокурс по Docker в подарок ⤵️ ❓ Ваша компания решила мигрировать сервисы на Kubernetes? ❓ Большая часть интересных вам вакансий требует навыков в K8s? ❓ Вы не врубаетесь, где границы ответственности девопсов и разработчиков в работе с кубами? Разбираемся с этим на курсе Слёрма «Kubernetes для разработчиков» 😎 Старт потока — 22 июляПРОГРАММА КУРСА Вас ждут: ✅ 7 недель обучения  ✅ 112 часов практики + 26 часов теории ✅ Общий чат со студентами, экспертами и куратором ✅ Стенды для отработки практических навыков ✅ Сдача сертификации ✅ Итоговый проект Эксперты — действующие devops-инженеры: ➡️ Марсель Ибраев, Senior System Engineer G42 Cloud ➡️ Павел Селиванов, архитектор Yandex Cloud 🎁 При оплате обучения до 22 июля — видеокурс по основам Docker в подарок🎁 🔗 ПРОЙТИ ПЕРВЫЕ ТРИ УРОКА БЕСПЛАТНО

Совет Spring Framework💡 Вы можете инжектировать (autowire) бины, которые могут отсутствовать, обернув их в java.util.Optiona
Совет Spring Framework💡 Вы можете инжектировать (autowire) бины, которые могут отсутствовать, обернув их в java.util.Optional. Таким образом вы сообщаете, что этот бин является необязательным, избегаете исключения, если он не существует, и можете аккуратно обработать его отсутствие с помощью Optional API. 👉@BookJava

♨️ Хотите добиться максимальной производительности от своих Java-проектов? Научитесь искусству измерения производительности и
♨️ Хотите добиться максимальной производительности от своих Java-проектов? Научитесь искусству измерения производительности и оптимизации кода на нашем увлекательном онлайн-уроке. Забудьте о гадании и предположениях! На этом вебинаре мы расскажем вам о мощном инструменте Java Microbenchmark Harness (JMH) и его области применения. Вместе мы разберем работу с производительными тестами и сравнением различных алгоритмов. Вебинар будет полезен как Java-разработчикам, которые ищут лучшие практики для оптимизации кода, так и тестировщикам, специализирующимся на нагрузочном тестировании. Спикер — Tech Lead в одном из крупнейших российских банков и кандидат технических наук. Готовы стать мастером производительности в Java? ➡️ Регистрируйтесь прямо сейчас и откройте новый уровень эффективности в своих проектах: https://vk.cc/cykdYt Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Зачем выбирать ReentrantLock вместо synchronized? Объект класса ReentrantLock решает те же задачи, что и блок synchronized. Поток висит на вызове метода lock() в ожидании своей очереди занять этот объект. Владеть локом, как и находиться внутри блока synchronized может только один поток одновременно. unlock(), подобно выходу из блока синхронизации, освобождает объект-монитор для других потоков. В отличие от блока синхронизации, ReentrantLock дает расширенный интерфейс для получения информации о состоянии блокировки. Методы лока позволяют еще до блокировки узнать, занят ли он сейчас, сколько потоков ждут его в очереди, сколько раз подряд текущий поток завладел им. Шире и возможные режимы блокировки. Кроме обычного ожидающего lock(), вариант tryLock() с параметром ожидает своей очереди только заданное время, а без параметра – вообще не ждет, а только захватывает свободный лок. Еще одно отличие – свойство fair. Лок с этим свойством обеспечивает «справедливость» очереди: пришедший раньше поток захватывает объект раньше. Блок synchronized не дает никаких гарантий порядка. 👉@BookJava