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 101 subscribers, ranking 11 696 in the Technologies & Applications category and 62 872 in the Russia region.

📊 Audience metrics and dynamics

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

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

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 7.55%. Within the first 24 hours after publication, content typically collects 3.77% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 763 views. Within the first day, a publication typically gains 381 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 7.
  • 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 01 September, 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 101
Subscribers
-524 hours
-297 days
-8930 days
Posts Archive
Beyond Loom: Weaving new concurrency patterns В этой статье мы обсудим некоторые новые паттерны для параллельных систем, кото
Beyond Loom: Weaving new concurrency patterns В этой статье мы обсудим некоторые новые паттерны для параллельных систем, которые стали возможны благодаря новой функции виртуальных потоков в Java 21, а также некоторые связанные с ней функции, которые "следуют" за виртуальными потоками - в частности, Structured Concurrency (JEP 453) и Scoped Values (JEP 446). Обратите внимание, что в JDK 21 структурированный параллелизм и скопированные значения находятся в состоянии Preview и поэтому не могут быть использованы в продакшен-приложениях. Учитывая это ограничение, давайте начнем с рассмотрения паттернов, которые поддерживаются только виртуальными потоками и, следовательно, могут без ограничений использоваться в приложениях Java 21. https://developers.redhat.com/articles/2023/10/03/beyond-loom-weaving-new-concurrency-patterns# 👉@BookJava

🚀AutoCloseable HTTP Client в Java 21 👉@BookJava
🚀AutoCloseable HTTP Client в Java 21 👉@BookJava

Присоединяйтесь к нашему бесплатному курсу и начните увлекательное путешествие в мир Java! Изучайте основы, создавайте програ
Присоединяйтесь к нашему бесплатному курсу и начните увлекательное путешествие в мир Java! Изучайте основы, создавайте программы, разбирайтесь с методами и анализируйте ошибки в коде. Практика, упражнения и проверочные тесты помогут вам освоить навыки программирования. 🎓 Чему вы научитесь: — Создавать программы с использованием основных конструкций языка.  — Разделять код на методы для повторного использования.  — Анализировать ошибки в коде с использованием отладочной печати. 💼 Включено в курс: 29 уроков (видео и/или текст), 35 упражнений в тренажере, 95 проверочных тестов + дополнительные материалы. Вы с нами?😉

Когда нужно использовать raw types? Сначала вспомним, что такое raw type. В Java так называют generic-типы без указания типа-параметра. Такая языковая конструкция валидна, но в большинстве случаев приводит к предупреждению компилятора. Предупреждение связано с риском получения проблемы heap pollution. Ей мы уже посвящали публикации ранее. Использование raw types никогда не оправдано – спецификация языка явно говорит: их поддержка остается только для обратной совместимости. Есть всего три случая, когда использовать обобщенный тип без параметра правильно: • Целевая версия Java < 5.0 (2002 год и ранее – вряд ли это ваш случай); • В литерале класса. List<String>.class не сработает, нужно писать List.class; • В операторе instanceof. Вместо instanceof Set<Integer> должно быть instanceof Set. 👉@BookJava

Создание REST API с использованием Spring WebFlux и Security 00:00:00 Введение 00:00:20 Создание проекта 00:11:36 Создание миграций БД 00:15:40 Создание базовых классов 00:23:20 Реализация логики генерации JWT токена 00:46:30 Реализация логики валидации JWT токена 00:53:05 Построения цепочки аутентификации 01:04:22 Финальная конфигурация с использованием SecurityWebFilterChain 01:12:11 Реализация REST контроллеров 01:23:15 Проверка REST API средствами Postman 01:24:21 Добавление и конфигурация обработчика ошибок 01:25:40 Заключение Ссылка на Github репозиторий https://github.com/proselytear/webfluxsecurity источник 👉@BookJava

Разберитесь в RESTful API и усильте свое резюме На открытом практическом уроке от OTUS, где вы вместе с опытным экспертом: -
Разберитесь в RESTful API и усильте свое резюме На открытом практическом уроке от OTUS, где вы вместе с опытным экспертом: - рассмотрите уровни зрелости REST; - обсудите концепцию HATEOAS; - изучите различные паттерны REST, включая их реализацию в форматах json-api и odata; - научитесь генерировать клиент к сервису по openapi idl. Встречаемся 6 февраля в 20:00 мск в рамках курса «Microservice Architecture». Доступна рассрочка на обучение! Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок: https://vk.cc/cugAcC

Как загружать классы в Java 8 и Java 9+? Я разработчик в Институте Системного Программирования РАН, занимаюсь разработкой ста
Как загружать классы в Java 8 и Java 9+? Я разработчик в Институте Системного Программирования РАН, занимаюсь разработкой статического анализатора Svace. Недавно я столкнулся с задачей самостоятельной загрузки классов в JVM, что оказалось непросто, потому что в проекте мы используем модули Java. Модули появились в Java, начиная с версии 9. Прошло уже несколько лет, но если попытаться найти актуальную информацию о связи модулей и загрузчиков классов, её придётся собирать по крупицам. В статье я поделюсь своим опытом изучения вопроса самостоятельной (и автоматической) загрузки классов с помощью кастомного загрузчика, а также разберу примеры, описывающие большинство случаев загрузки, постараюсь их объяснить. https://habr.com/ru/companies/isp_ras/articles/788618/ 👉@BookJava

🔥 Пройди тест по Java и проверь свои знания. Ответишь — пройдешь на продвинутый курс "Java Developer. Professional" от OTUS по специальной цене + получишь доступ к записям открытых уроков курса курса 🔝 Обновленная, расширенная программа 👉 ПРОЙТИ ТЕСТ: https://vk.cc/cufmPj Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Повторяющиеся тесты Используйте @RepeatedTest для запуска одного и того же теста несколько раз, каждый раз с разными входными данными или условиями, что особенно полезно для стресс-тестирования. https://junit.org/junit5/docs/current/api/org.junit.jupiter.api/org/junit/jupiter/api/RepeatedTest.html 👉@BookJava

Как в Java разобрать JSON? JSON – на ряду с XML, самый популярный текстовый формат передачи данных. Существует великое множество библиотек для работы с ним, здесь перечислены самые популярные. Gson – решение от Google. В простом случае, максимально просто в применении. Популярно в Android. org.json – Простое решение для работы с атрибутами из JSON-строки. Не умеет сериализовать из объекта в JSON и обратно. Jackson – библиотека, знакомая всем любителям Spring Framework. Широкий простор конфигурации. Может использоваться в Java EE (в составе JAX-RS), хорошо подходит для сложных web-приложений. JSONP – один из компонентов Java EE. Есть как стриминговая версия (экономит память при больших документах), так и обычная (когда нужно работать с документом целиком). Можно взять реализацию Glassfish, или любого другого сервера приложений. Решение «от производителя», как часто бывает, не самое популярное. На разных данных эти решения могут показывать различную производительность, поэтому чтобы выбрать библиотеку исходя из быстродействия, нужно замерять скорость работы на конкретном приложении. Большинство готовых сравнений, которые вы найдете, заангажированы в пользу библиотеки автора этого сравнения. 👉@BookJava

Анализ дампа кучи Java: разбираем на примерах Я увлекаюсь управлением памятью в Java и в этой статье попробую объяснить, как
Анализ дампа кучи Java: разбираем на примерах Я увлекаюсь управлением памятью в Java и в этой статье попробую объяснить, как взять и проанализировать дамп кучи – разберём на примерах. Но для начала давайте вспомним, что известно об этой предметной области. Немного освежив теорию, мы возьмем дамп кучи и проанализируем, каким он получится в простом приложении. https://habr.com/ru/companies/timeweb/articles/719434/ original https://huseyinbabal.com/2022/08/14/java-heap-dump-analysis-with-examples/ 👉@BookJava

☘️ Изучите Spring и в 2024 году вас ждёт профессиональная удача Освойте востребованный фреймворк для создания приложений на J
☘️ Изучите Spring и в 2024 году вас ждёт профессиональная удача Освойте востребованный фреймворк для создания приложений на Java, чтобы выйти на новый профессиональный уровень. 🔝 Приходите на онлайн-курс «Разработчик на Spring Framework» от OTUS! Что вы получите: ✔️ Понимание, как создавать Web-приложения на микросервисной архитектуре и решать высокоуровневые задачи по разработке. ✔️ Умение быстро проходить путь от идеи до production-grade. ✔️ Владение фреймворками Spring и технологиями вспомогательных проектов (Spring MVC, Spring Security, Spring Boot, Spring Reactive Stack, Spring 5). ➡️ Пройдите короткий тест прямо сейчас и узнайте, готовы ли вы расширить карьерные перспективы: https://vk.cc/cu7jXc Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Совет по Spring 💡 EnvironmentCapable Интерфейс, предоставляющий доступ к среде Spring, позволяющий получать свойства, профили и другую информацию, связанную со средой. 🔥 https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/core/env/EnvironmentCapable.html 👉@BookJava

Как создать пару публичный/приватный ключ? Не следует путать генерацию ключей с задачей их чтения, о которой здесь писали ранее. Для генерации ключей используется KeyPairGenerator. Архитектурно он похож на читающую ключи KeyFactory: реализации для разных алгоритмов также поставляются через SPI, доступ к ним также осуществляется через getInstance. Перед использованием, генератор нужно инициализировать. Для этого методом initialize устанавливаются три опциональных параметра: • Желаемый размер ключа; • Источник случайных значений типа SecureRandom; • Специфичные для алгоритма настройки в объекте подкласса AlgorithmParameterSpec. Если к моменту создания ключей генератор не инициализирован, или при инициализации часть параметров не указана, эти параметры примут дефолтные значения. Каждый провайдер устанавливает свои собственные дефолты. Сам метод генерации generateKeyPair не требует параметров. Его можно вызывать повторно для генерации нескольких разных пар. Результат его вызова – объект KeyPair, который просто хранит под уже знакомыми нам интерфейсами PrivateKey и PublicKey пару инстансов специфичных для алгоритма подклассов. 👉@BookJava

🔥 Освойте один из важнейших инструментов Java-разработчика На бесплатном практическом уроке «Основы работы с Spring Data JDB
🔥 Освойте один из важнейших инструментов Java-разработчика На бесплатном практическом уроке «Основы работы с Spring Data JDBC» от OTUS и Александра Фисунова — Senior Kotlin Developer в SSP Software на проекте ВТБ. На вебинаре: - разберемся, как работать с реляционными базами данных из Spring Boot приложения с использованием Spring Data JDBC; - проведем небольшое сравнение с модулем Spring Data JPA; - ответим на все возникающие вопросы. 📢📢 Встречаемся 30 января в 20:00 мск. Открытый урок проходит в преддверии обновленного запуска курса «Java Developer. Professional». ➡️ Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://vk.cc/cu6v3u Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Подборка из 10 репозиториев GitHub для изучения Java 1. Awesome Java: https://github.com/akullpp/awesome-java 2. Modern Java - A Guide to Java 8: https://github.com/winterbe/java8-tutorial 3. Java Design Patterns: https://github.com/iluwatar/java-design-patterns 4. Spring Framework: https://github.com/spring-projects/spring-framework 5. Algorithms: https://github.com/TheAlgorithms/Java 6. Spring Boot Tutorial: https://github.com/RameshMF/spring-boot-tutorial 7. Baeldung Java and Spring Tutorials: https://github.com/eugenp/tutorials 8. Google Style Guides: https://github.com/google/styleguide 9. Netflix - Open Source Java Projects: https://github.com/Netflix 10. Ultimate Java Resources: https://github.com/dubesar/Ultimate-Java-Resources 👉@BookJava

Как архитекторам и разработчикам попасть в крупный инновационный проект? Изучить микросервисную архитектуру под руководством
Как архитекторам и разработчикам попасть в крупный инновационный проект? Изучить микросервисную архитектуру под руководством топовых специалистов крупнейших компаний всего за 5 месяцев на онлайн-курсе от OTUS. Программа идеально подходит архитекторам, разработчикам, системным аналитикам, администраторам и DevOps, которые хотят выйти на новый карьерный уровень. Доступна рассрочка на обучение. Курс нацелен на глубокое изучение темы и получение практических навыков, в рамках обучения вы рассмотрите работу с очень популярными сейчас инструментами – Kubernetes и Docker. Переходите на сайт, чтобы записаться на 2 пробных бесплатныx открытых урока: ✅ «CAP-теорема и управление ожиданиями пользователей» (регистрация на урок без тестирования) ✅ «Паттерны RESTful API» (регистрация на урок через тестирование)

Совет по Java 💡 Чтобы сделать большие и сложные цепочки компараторов более читаемыми, мне нравится присваивать компараторы п
Совет по Java 💡 Чтобы сделать большие и сложные цепочки компараторов более читаемыми, мне нравится присваивать компараторы переменным, имена которых начинаются с "by". Таким образом, вызов sorted() становится меньше и читается почти как естественный язык. Кроме того, вы можете использовать статический импорт. 👉@BookJava

Опишите жизненный цикл Spring Bean Beans – центральный объект заботы Spring Framework. За кулисами фреймворка с ними происходит множество процессов. Во многие из них можно вмешаться, добавив собственную логику в разные этапы жизненного цикла. Через следующие этапы проходит каждый отдельно взятый бин: 1. Инстанцирование объекта. Техническое начало жизни бина, работа конструктора его класса; 2. Установка свойств из конфигурации бина, внедрение зависимостей; 3. Нотификация aware-интерфейсов. BeanNameAware, BeanFactoryAware и другие. Мы уже писали о таких интерфейсах ранее. Технически, выполняется системными подтипами BeanPostProcessor, и совпадает с шагом 4; 4. Пре-инициализация – метод postProcessBeforeInitialization() интерфейса BeanPostProcessor; 5. Инициализация. Разные способы применяются в таком порядке: • Метод бина с аннотацией @PostConstruct из стандарта JSR-250 (рекомендуемый способ); • Метод afterPropertiesSet() бина под интерфейсом InitializingBean; • Init-метод. Для отдельного бина его имя устанавливается в параметре определения initMethod. В xml-конфигурации можно установить для всех бинов сразу, с помощью default-init-method; 6. Пост-инициализация – метод postProcessAfterInitialization() интерфейса BeanPostProcessor. Когда IoC-контейнер завершает свою работу, мы можем кастомизировать этап штатного уничтожения бина. Как со всеми способами финализации в Java, при жестком выключении (kill -9) гарантии вызова этого этапа нет. Три альтернативных способа «деинициализации» вызываются в том же порядке, что симметричные им методы инициализации: 1. Метод с аннотацией @PreDestroy; 2. Метод с именем, которое указано в свойстве destroyMethod определния бина (или в глобальном default-destroy-method); 3. Метод destroy() интерфейса DisposableBean. Не следует путать жизненный цикл отдельного бина с жизненным циклом контекста и этапами подготовки фабрик бинов. О них мы поговорим в будущих публикациях. 👉@BookJava