Основы flatMap в Java
⏩ flatMap является промежуточной операцией.
⏩ Промежуточные операции преобразуют один поток (stream) в другой и позволяют выполнять дальнейшие операции с потоком.
⏩ Слово «flat» в flatMap указывает на его способность «выравнивать» поток коллекций (например, Stream<List<T>>) в единый поток элементов (Stream<T>).
⏩ Назначение: преобразует каждый элемент исходного потока в поток других элементов (отображение «один ко многим»), а затем объединяет (выравнивает) полученные потоки в единый непрерывный поток.
👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤1🔥1🌭1
Шпаргалка по аннотациям Spring Core
Таблица с основными аннотациями Spring, их описаниями и примерами использования. Аннотации включают
Они используются для управления бинами, зависимостями и конфигурацией в Spring-приложениях.
👉 Java Portal
Таблица с основными аннотациями Spring, их описаниями и примерами использования. Аннотации включают
@Component, @Service, @Repository, @Controller, @RestController, @Autowired, @Qualifier и @Value
. Они используются для управления бинами, зависимостями и конфигурацией в Spring-приложениях.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤3🔥2🤣1
Как установить базовый URL для REST API в приложении Spring Boot.
Базовый URL — это постоянная часть адреса вашего REST API или веб-сайта, например,
⏩ Читать подробнее
👉 Java Portal | #cтатья
Базовый URL — это постоянная часть адреса вашего REST API или веб-сайта, например,
"http://twitter.com"
для Twitter. Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Перемещайтесь по коду быстрее с помощью ярлыков навигации по методам в IntelliJIDEA:
⌃⇧↓ | Alt+Down
⌃⇧↑ | Alt+Up
Особенно касается больших и сложных файлов Java!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥4❤2
Media is too big
VIEW IN TELEGRAM
Дженерики в Java. Проще чем кажется.
Видео объясняет концепцию дженериков в Java, начиная с их создания, а не использования, чтобы упростить понимание для начинающих. Автор показывает, как параметризованные типы позволяют работать с разными объектами, демонстрирует примеры с числами, строками и пользовательским классом Car, объясняя, почему важно переопределять метод toString для корректного вывода.
📲 Cмотреть источник: тут
👉 Java Portal | #видео
Видео объясняет концепцию дженериков в Java, начиная с их создания, а не использования, чтобы упростить понимание для начинающих. Автор показывает, как параметризованные типы позволяют работать с разными объектами, демонстрирует примеры с числами, строками и пользовательским классом Car, объясняя, почему важно переопределять метод toString для корректного вывода.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍5❤3
Чтобы получить все дни месяца, можно начать с объекта
YearMonth
, взять его первый день, а затем использовать функцию datesUntil()
, которая возвращает поток (Stream) всех дней до указанной даты.Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥4
10 книг для собеседования по системному проектированию, которые необходимо прочитать в 2025 году"
⏩ Читать подробнее
👉 Java Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1
Keycloak – мощная система управления доступом
Если вам нужно добавить аутентификацию и авторизацию в приложение — Keycloak вам в помощь. Это open-source решение для управления идентификацией, поддерживающее SSO, OAuth2, OpenID Connect, SAML и многое другое.
☑ Единый вход (SSO) между разными сервисами
☑ Поддержка внешних Identity-провайдеров (Google, GitHub, LDAP)
☑ Гибкая настройка ролей и прав доступа
☑ Механизмы MFA (многофакторная аутентификация)
☑ Интеграция с REST API и микросервисами
Использовали Keycloak?🤔
👉 Java Portal
Если вам нужно добавить аутентификацию и авторизацию в приложение — Keycloak вам в помощь. Это open-source решение для управления идентификацией, поддерживающее SSO, OAuth2, OpenID Connect, SAML и многое другое.
Использовали Keycloak?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥2
Media is too big
VIEW IN TELEGRAM
Пойми как устроены примитивы в Java
Видео — детальный разбор примитивных типов данных в Java: их размер, диапазон, литералы, а также отличие от классов-оберток (Wrapper Classes, BigInteger, BigDecimal). Рассматривается двоичное представление чисел, переполнение, работа с отрицательными и дробными числами.
📲 Cмотреть источник: тут
👉 Java Portal | #видео
Видео — детальный разбор примитивных типов данных в Java: их размер, диапазон, литералы, а также отличие от классов-оберток (Wrapper Classes, BigInteger, BigDecimal). Рассматривается двоичное представление чисел, переполнение, работа с отрицательными и дробными числами.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3❤1
Эта таблица содержит временные и пространственные сложности различных алгоритмов сортировки, поиска, работы с графами и строками.
Измеряется в O-нотации (Big-O), которая показывает, как время выполнения или использование памяти алгоритма зависит от размера входных данных n.
⏩ Временная сложность (Best, Average, Worst Case) — сколько операций потребуется.
⏩ Пространственная сложность (Space Complexity) — сколько дополнительной памяти нужно.
O(1) — постоянное время/память.
O(n) — линейная зависимость от количества данных.
O(log n) — логарифмическая зависимость (уменьшение размерности).
O(n²) — квадратичная зависимость (вложенные циклы).
Чем меньше сложность, тем эффективнее алгоритм👍
👉 Java Portal
Измеряется в O-нотации (Big-O), которая показывает, как время выполнения или использование памяти алгоритма зависит от размера входных данных n.
O(1) — постоянное время/память.
O(n) — линейная зависимость от количества данных.
O(log n) — логарифмическая зависимость (уменьшение размерности).
O(n²) — квадратичная зависимость (вложенные циклы).
Чем меньше сложность, тем эффективнее алгоритм
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥2🌚1
Основные концепции в Kafka которые нужно знать:
🟡 Топики (Topics): Kafka организует сообщения в топики, которые выступают в роли категорий сообщений.
🟡 Разделы (Partitions): Каждый топик разделяется на несколько разделов, что позволяет обрабатывать данные параллельно.
🟡 Продюсеры (Producers): Отправляют сообщения в топики Kafka.
🟡 Потребители (Consumers): Читают сообщения из топиков, обычно в составе групп потребителей для параллельной обработки.
🟡 Брокеры (Brokers): Сервера Kafka, которые хранят и передают сообщения.
🟡 Zookeeper: Управляет метаданными и выбором лидера для разделов.
👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3❤1
Свободный и мощный PDF-движок
Если вам нужен Java-инструмент для работы с PDF без привязки к проприетарным библиотекам, OpenPDF – отличный выбор.
Это форк iText 4, который предлагает все ключевые функции для создания, редактирования и подписи PDF-документов. Полностью open-source и распространяется под LGPL/MPL лицензиями.
⏩ Генерация и модификация PDF
⏩ Шифрование и цифровые подписи
⏩ Поддержка форм и аннотаций
⏩ Совместимость с Java-приложениями
Используете OpenPDF?🤔
👉 Java Portal
Если вам нужен Java-инструмент для работы с PDF без привязки к проприетарным библиотекам, OpenPDF – отличный выбор.
Это форк iText 4, который предлагает все ключевые функции для создания, редактирования и подписи PDF-документов. Полностью open-source и распространяется под LGPL/MPL лицензиями.
Используете OpenPDF?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥4
Java: Почему индустрия возвращается к JDBC вместо JPA?
Этот сдвиг набирает популярность в различных отраслях, особенно в высокопроизводительных приложениях.
Для ресурсоемких приложений вручную написанные SQL-запросы часто работают быстрее, чем сгенерированные JPA, обеспечивая лучшую эффективность и удобство сопровождения.
Означает ли это, что JPA мертв?🩸
Не обязательно. JPA по-прежнему полезен для приложений, где:
🟡 Быстрое развитие важнее, чем точная оптимизация производительности.
🟡 Доменная модель тесно соответствует реляционной структуре данных.
🟡 Взаимодействие с базой данных сосредоточено на CRUD-операциях с минимальным количеством сложных запросов.
Однако в приложениях, требующих высокой пропускной способности, сложного SQL и оптимального использования ресурсов, JDBC становится предпочтительным выбором.
👉 Java Portal
Этот сдвиг набирает популярность в различных отраслях, особенно в высокопроизводительных приложениях.
Для ресурсоемких приложений вручную написанные SQL-запросы часто работают быстрее, чем сгенерированные JPA, обеспечивая лучшую эффективность и удобство сопровождения.
Означает ли это, что JPA мертв?
Не обязательно. JPA по-прежнему полезен для приложений, где:
Однако в приложениях, требующих высокой пропускной способности, сложного SQL и оптимального использования ресурсов, JDBC становится предпочтительным выбором.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤4
Java Optional - orElse(), orElseGet() и orElseThrow()
Если вы используете Optional.isPresent(), а затем Optional.get(), то вы используете его неправильно.😕
Вместо этого рекомендуется использовать цепочку Optional (Optional Chaining) с методами:
⏩
⏩
⏩
Использование Optional в функциональном стиле делает код более читаемым, лаконичным и менее подверженным ошибкам.
👉 Java Portal
Если вы используете Optional.isPresent(), а затем Optional.get(), то вы используете его неправильно.
Вместо этого рекомендуется использовать цепочку Optional (Optional Chaining) с методами:
orElse(value)
– если значение присутствует, оно возвращается, иначе возвращается указанное значение.orElseGet(Supplier)
– если значение присутствует, оно возвращается, иначе вызывается переданный метод (лямбда-функция).orElseThrow(Supplier<Exception>)
– если значение отсутствует, выбрасывается исключение.Использование Optional в функциональном стиле делает код более читаемым, лаконичным и менее подверженным ошибкам.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥4🌚2
50 бесплатных вопросов для подготовки к сертификации Spring Professional Certification
⏩ Читать подробнее
👉 Java Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2
Семантика доставки в Kafka
⏩ At-Least-Once («Как минимум один раз») – гарантирует доставку, но возможны дубликаты.
⏩ At-Most-Once («Не более одного раза») – сообщения не дублируются, но возможны потери.
⏩ Exactly-Once («Ровно один раз») – гарантирует, что каждое сообщение будет обработано ровно один раз, без потерь и дубликатов.
👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥1
Создание простого HTTP-сервера в Java
🟡 Настройка и обзор проекта.
🟡 Управление конфигурацией.
🟡 Использование серверных сокетов.
🟡 Обработка нескольких подключений с помощью потоков.
🟡 Разбор HTTP-запросов.
и тд.
Это пошаговое руководство, которое поможет разобраться в основах создания веб-сервера с нуля на Java.
📲 Cмотреть источник: тут
👉 Java Portal | #видео
и тд.
Это пошаговое руководство, которое поможет разобраться в основах создания веб-сервера с нуля на Java.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤2🔥1
Что такое Внедрение Зависимостей (Dependency Injection)?
Внедрение зависимостей — это шаблон проектирования, при котором объекты получают свои зависимости из внешнего источника, а не создают их внутри себя.
Преимущества внедрения зависимостей👇
- Слабая связность: Компоненты взаимодействуют через определённые интерфейсы, что повышает гибкость.
- Упрощённое тестирование: Легче проводить модульное тестирование с использованием мок-объектов.
- Повторное использование кода: Способствует модульному дизайну, улучшая переиспользование кода.
- Простая конфигурация: Автоконфигурация Spring Boot минимизирует необходимость ручного связывания зависимостей.
- Лучшая поддерживаемость: Изменения в одном компоненте не оказывают прямого влияния на другие.
👉 Java Portal
Внедрение зависимостей — это шаблон проектирования, при котором объекты получают свои зависимости из внешнего источника, а не создают их внутри себя.
Преимущества внедрения зависимостей
- Слабая связность: Компоненты взаимодействуют через определённые интерфейсы, что повышает гибкость.
- Упрощённое тестирование: Легче проводить модульное тестирование с использованием мок-объектов.
- Повторное использование кода: Способствует модульному дизайну, улучшая переиспользование кода.
- Простая конфигурация: Автоконфигурация Spring Boot минимизирует необходимость ручного связывания зависимостей.
- Лучшая поддерживаемость: Изменения в одном компоненте не оказывают прямого влияния на другие.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2🌭1
Разница между Interceptor и Filter в Spring Boot
Что такое Filter? Filter — это часть Servlet API, работающая на низком уровне, обрабатывающая все входящие запросы до того, как они достигнут диспетчера Spring.
Когда использовать Filter?
🟡 Логирование
🟡 Сжатие GZIP
🟡 Проверки безопасности: реализация брандмауэров, ограничение скорости, контроль доступа
🟡 Модификация запросов/ответов: изменение HTTP-данных (например, упаковка, очистка, кэширование)
Что такое Interceptor? Interceptor — это часть Spring MVC, работающая внутри фреймворка Spring. Он позволяет модифицировать запросы и ответы, особенно для контроллеров.
Когда использовать Interceptor?
🟡 Проверка учетных данных и прав доступа для контроллеров
🟡 Логирование времени выполнения
🟡 Изменение модели или представления перед отправкой ответа клиенту
👉 Java Portal
Что такое Filter? Filter — это часть Servlet API, работающая на низком уровне, обрабатывающая все входящие запросы до того, как они достигнут диспетчера Spring.
Когда использовать Filter?
Что такое Interceptor? Interceptor — это часть Spring MVC, работающая внутри фреймворка Spring. Он позволяет модифицировать запросы и ответы, особенно для контроллеров.
Когда использовать Interceptor?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1
Media is too big
VIEW IN TELEGRAM
Интеграция потоков данных для микросервисов с Kafka и Kafka Connect
Автор делится опытом выбора Kafka для реального времени получения информации о стоках товаров через API, а также описывает процесс интеграции реляционных баз данных, выбор и настройку коннекторов Kafka, использование базы данных Tarantool для хранения данных и выбор инструментов для мониторинга, таких как Dynatrace, Prometheus и Burrow. В результате была создана система, обрабатывающая данные за 5-10 секунд.
📲 Cмотреть источник: тут
👉 Java Portal | #видео
Автор делится опытом выбора Kafka для реального времени получения информации о стоках товаров через API, а также описывает процесс интеграции реляционных баз данных, выбор и настройку коннекторов Kafka, использование базы данных Tarantool для хранения данных и выбор инструментов для мониторинга, таких как Dynatrace, Prometheus и Burrow. В результате была создана система, обрабатывающая данные за 5-10 секунд.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2