Библиотека джависта | Java, Spring, Maven, Hibernate
24.8K subscribers
1.87K photos
38 videos
42 files
2.66K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://yangx.top/proglibrary/9197

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
Задача с LeetCode (Max Consecutive Ones)

Дан массив, состоящий только из ноликов и единиц. Необходимо вычислить максимальную длину подмассива, в котором присутствуют только единицы (1, 1, 0, 1, 1, 1 | Длина — 3).

⏺️ Переменные count и max равны 0. count используется для подсчета текущего количества последовательных единиц, а max — для хранения максимального значения.

⏺️ Внутри цикла for проверяется, является ли текущий элемент массива nums[i] равным 1. Если да, то увеличиваем значение count на 1. Если нет, то count присваивается значение 0, так как последовательность прерывается.

⏺️ Функция Math.max(count, max) находит максимальное значение между count и max. Значение count обновляется на каждой итерации цикла, поэтому теперь max будет содержать максимальное количество последовательных единиц на текущей итерации.
⚡️IT-конференция про облачные технологии

Когда все случится: в Москве 21 марта в 10:00 в офлайн формате.

Что будет?

🔹 3 тематических трека про новую облачную платформу, прорывные технологии и клиентские инсайты
🔹 20 сессий с экспертами из мира облачных технологий
Live-демонстрации облачных платформ и сервисов
🔹 Нетворкинг с разработчиками и идеологами продуктов Cloud.ru
figure

Ключевые темы:

👉 Облако и бизнес: реальные кейсы российских компаний вместе с Cloud.ru
👉 Мир open source: последние разработки
👉 Демонстрация новой облачной платформы
👉 Обсуждаем SDS, SDN, Serverless и не только

Регистрация тут

#мероприятие
☕️📦 10 Java-библиотек, которые изменят твой код навсегда

Из этой статьи вы узнаете о ключевых возможностях 10 популярных библиотек для Java: работа с коллекциями, строками, JSON, логами, датами и временем и многое другое.

Читать статью
Очередной #дайджест для джавистов

Задачи от Tinkoff для Junior Java developers — тренировка для начинающих разработчиков на знание Java core

Java в контейнере — особенности эксплуатации

Spring Boot — реактивный асинхронный неблокирующий REST vs традиционный синхронный блокирующий

Декоратор. Шаблоны проектирования в деталях — автор рассказывает о популярных шаблонах проектирования с примерами кода на языке программирования Java

Введение в коллекции Java — в статье не будут сильно углубляться в детали каждой коллекции в отдельности, ведь чтобы начать ими пользоваться, достаточно хотя бы на базовом уровне понять, что это такое и с чем это «едят»
DatagramPacket

DatagramPacket — это класс в Java, который представляет собой пакет датаграмм. Датаграммы используются для реализации бессоединительной службы доставки пакетов. Это означает, что каждый пакет отправляется независимо от других пакетов, и нет гарантии, что они будут доставлены в том же порядке, в котором были отправлены.
🖐️🖐️ Infra Meetup

Митап состоится 29 февраля 18:00 в Санкт-Петербурге.

Будет три доклада об инструментах надежности в Такси, платформе биллинга Екома и Райдтеха и возможностях фреймворка userver для поддержания отказоустойчивости.

Инструменты надежности Такси
Спикер расскажет о программных инструментах и процессах, позволяющих обеспечивать бесперебойную работу Такси даже при повышенной нагрузке, предотвращать аварии и быстро подниматься в случае инцидента.

Роль фреймворка в отказоустойчивой архитектуре
При разработке сервисов Яндекса важна отказоустойчивость, ведь любой простой — деньги для бизнеса. В нашем open-source C++ фреймворке userver есть специальные фишки и инструменты для поддержания отказоустойчивости.

Надежность платформы биллинга
Спикер выступит с рассказом о платформе биллинга Екома и Райдтеха в Яндексе, обслуживающей многомиллиардные финансовые потоки. Объяснит, из чего состоит платформа, какие задачи решает и как команды обеспечивают ее надежность. Опишет комбинации архитектурных, продуктовых и процессных подходов к проблеме надежности биллинга.

Регистрация тут
CopyOnWriteArrayList

CopyOnWriteArrayList — это реализация интерфейса List, оптимизированная для работы в многопоточном окружении.

Основное отличие этой коллекции в том, что все модифицирующие операции (добавление, удаление элементов) не изменяют существующий массив, а создают его копию.
Это позволяет избежать необходимости синхронизации для потокобезопасного чтения.

CopyOnWriteArrayList полезен в ситуациях, когда чтение данных происходит гораздо чаще, чем изменение. Например, при реализации общего кэша в многопоточном приложении.
📈 5 трендов в подборе ИТ-специалистов на 2024 год

Использование ИИ-алгоритмов становится трендом и в Human Resources. Такими инструментами пользуются и кандидаты, и работодатели.

🤖 Например, появляются Applicant tracking system (ATS) с ИИ, которые автоматизируют поиск и отбор кандидатов. А ещё есть Final Round AI — своеобразный помощник с искусственным интеллектом, который генерирует индивидуальные ответы на онлайн-интервью в режиме реального времени.

👉 О других трендах читайте в нашей новой статье 👈
🔗 Зеркало
🤔🤔 Что работодатели ожидают от джуниор Java-разработчиков

Сейчас рынок труда в IT-сфере переживает не самый простой период, и новичкам на нём особенно тяжело. Авторы провели исследование и выяснили, какие навыки и инструменты нужны начинающим Java-разработчикам. А также — к чему стоит готовиться при устройстве на работу.

Читать статью

#почитать
BeanPostProcessor

BeanPostProcessor — это интерфейс в Spring Framework, который позволяет разработчикам расширять логику создания бинов. BeanPostProcessors вызываются после того, как бин был создан и проинициализирован, но до того, как он будет зарегистрирован в контейнере Spring.

BeanPostProcessors имеют два метода обратного вызова:
postProcessBeforeInitialization(Object bean, String beanName): вызывается перед тем, как будет вызван метод init() бина.
postProcessAfterInitialization(Object bean, String beanName): вызывается после того, как будет вызван метод init() бина.
Очередной #дайджест по Java

🔄 Вариантность обобщенных типов в картинках и простых примерах — для примера используется пять классов которые последовательно наследуются друг от друга и коллекции ArrayList предназначенные для хранения экземпляров этих типов

🔄 Принцип подстановки Барбары Лисков — разбор важного принципа разработки ПО на ООП языках

🔄 Java Spring Reactive WebSession на примере — простой пример создания сессии, её использования и инвалидации в реактивном стеке Spring'а

🔄 Книга «Java 17 Recipes: A Problem-Solution Approach» — рассматриваются некоторые из новейших функций, API и многое другое, например сопоставление шаблонов для switch, восстановление семантики Always-Strict-Floating-Point-Semantics и прочее

🔄 Тестирование Spring Security — как протестировать аутентификацию и авторизацию приложений Spring Boot
SocketHandler

SocketHandler — это класс в Java, который используется для отправки сообщений журнала на сервер журнала. Он наследуется от класса Handler и реализует интерфейс StreamHandler.
✍️✍️ Отладка Spring-микросервиса в контейнере

Иногда для оперативной локализации ошибки проще всего воспользоваться отладчиком. Каждый разработчик так или иначе применял подход DDD при локальной разработке или в поисках бага на удаленном стенде. Но что делать, если удаленное приложение в контейнере? В этой автор поделился Dockerfile-ом, к которому пришел, решая проблему отладки контейнеризированного приложения.

За основу был взят Dockerfile из официального руководства Spring + подробности про multi-stage build и нюансы распаковки JAR-ника.

Подробности здесь

#гайд