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

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

Open in Telegram

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

Show more

📈 Analytical overview of Telegram channel Библиотека Java разработчика

Channel Библиотека Java разработчика (@bookjava) in the Russian language segment is an active participant. Currently, the community unites 10 274 subscribers, ranking 12 049 in the Technologies & Applications category and 63 967 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 10 274 subscribers.

According to the latest data from 08 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by 23 over the last 30 days and by -6 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 8.31%. Within the first 24 hours after publication, content typically collects 4.05% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 854 views. Within the first day, a publication typically gains 416 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 6.
  • Thematic interests: Content is focused on key topics such as string, интерфейс, строка, boot, api.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate. По всем вопросам @evgenycarter РКН clck.ru/3KoGeP

Thanks to the high frequency of updates (latest data received on 09 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

10 274
Subscribers
-624 hours
-37 days
+2330 days
Posts Archive
Совет 💡 Добавьте в 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