Java Portal | Программирование
11.5K subscribers
805 photos
60 videos
21 files
601 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
加入频道
Проектирование систем не так сложно, как вам кажется, начните с этих 10 понятий.

1. API Gateway vs Load Balancer? https://buff.ly/3S2bjsr
2. Обратный прокси против прямого прокси? https://buff.ly/3PEGDME
3. Горизонтальное масштабирование против вертикального масштабирования? https://buff.ly/49NvS26
4. Микросервисы против монолитной архитектуры? https://buff.ly/4aC7mS4
5. Стратегии кэширования - https://buff.ly/413WZD9
6. Что такое ограничитель скорости? Как он работает? https://buff.ly/3Lq9jqd
7. Как работает единая авторизация (SSO)? https://buff.ly/3S61wBG
8. Как работает Apache Kafka? Почему она такая быстрая? https://buff.ly/3LnlAf6
9. Kafka, ActiveMQ, vs RabbitMQ? https://buff.ly/3LjYSo9
10. JWT, OAuth и SAML? https://buff.ly/3Lpzey4

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Шпаргалка по Spring Framework

Включены ключевые технологии, такие как Spring Boot, Dependency Injection (DI), Inversion of Control (IoC), Spring MVC, Spring Data JPA, Spring Security и другие.

Объяснены, как эти технологии упрощают разработку Java-приложений, автоматизируют управление зависимостями, обеспечивают безопасность, работу с базами данных и улучшенную производительность.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
22 библиотеки и API, которые, по мнению автора, являются необходимыми для Java в 2025 году

В списке есть инструменты для модульного тестирования (JUnit, Mockito), работы с JSON (Jackson, Gson), логирования (SLF4J, Log4j2), HTTP-запросов (Apache HttpClient), XML (JAXB, Xerces), а также универсальные утилиты (Apache Commons, Google Guava

Читать подробнее

👉 Java Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Java Version Almanac — коллекция информации об истории и будущем языка программирования Java. 🔥

Сайт предоставляет подробные сведения о различных версиях Java, включая документацию, новые API, добавленные функции и варианты загрузки. На сайте также можно найти информацию о новых функциях, представленных в различных версиях JDK

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Новые возможности в Java 21

Шаблоны записей (Record patterns) были добавлены в Java 19 и Java 20 как preview-функции. В Java 21 они вышли из режима предварительного просмотра с некоторыми улучшениями.
Сопоставление с образцом в switch (Pattern matching for switch) было усовершенствовано в JDK 18, 19 и 20, а в JDK 21 получило дополнительные улучшения.
Шаблоны строк (String templates) появились в Java 21.
Виртуальные потоки (Virtual threads) впервые были добавлены в Java 19 в качестве preview-функции и доработаны в Java 20. В Java 21 добавлены новые изменения.
Новые интерфейсы для упорядоченных коллекций: в Java 21 появились три новых интерфейса для представления упорядоченных коллекций, упорядоченных наборов (sets) и упорядоченных карт (maps).
Новый API KEM: Java 21 добавила новый API KEM, который позволяет приложениям использовать алгоритмы KEM.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Основы flatMap в Java

flatMap является промежуточной операцией.
Промежуточные операции преобразуют один поток (stream) в другой и позволяют выполнять дальнейшие операции с потоком.
Слово «flat» в flatMap указывает на его способность «выравнивать» поток коллекций (например, Stream<List<T>>) в единый поток элементов (Stream<T>).
Назначение: преобразует каждый элемент исходного потока в поток других элементов (отображение «один ко многим»), а затем объединяет (выравнивает) полученные потоки в единый непрерывный поток.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Шпаргалка по аннотациям Spring Core

Таблица с основными аннотациями Spring, их описаниями и примерами использования. Аннотации включают @Component, @Service, @Repository, @Controller, @RestController, @Autowired, @Qualifier и @Value.

Они используются для управления бинами, зависимостями и конфигурацией в Spring-приложениях.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Как установить базовый URL для REST API в приложении Spring Boot.

Базовый URL — это постоянная часть адреса вашего REST API или веб-сайта, например, "http://twitter.com" для Twitter.

Читать подробнее

👉 Java Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Когда файлы огромные, а методов – куча, не теряйтесь

Перемещайтесь по коду быстрее с помощью ярлыков навигации по методам в IntelliJIDEA:

Следующий метод – ⌃⇧↓ | Alt+Down
Предыдущий метод – ⌃⇧↑ | Alt+Up

Особенно касается больших и сложных файлов Java!

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Дженерики в Java. Проще чем кажется.

Видео объясняет концепцию дженериков в Java, начиная с их создания, а не использования, чтобы упростить понимание для начинающих. Автор показывает, как параметризованные типы позволяют работать с разными объектами, демонстрирует примеры с числами, строками и пользовательским классом Car, объясняя, почему важно переопределять метод toString для корректного вывода.

📲 Cмотреть источник: тут

👉 Java Portal | #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Совет по Java:

Чтобы получить все дни месяца, можно начать с объекта YearMonth, взять его первый день, а затем использовать функцию datesUntil(), которая возвращает поток (Stream) всех дней до указанной даты.

👉 Java Portal | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
10 книг для собеседования по системному проектированию, которые необходимо прочитать в 2025 году"

Читать подробнее

👉 Java Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
Keycloak – мощная система управления доступом

Если вам нужно добавить аутентификацию и авторизацию в приложение — Keycloak вам в помощь. Это open-source решение для управления идентификацией, поддерживающее SSO, OAuth2, OpenID Connect, SAML и многое другое.

Единый вход (SSO) между разными сервисами
Поддержка внешних Identity-провайдеров (Google, GitHub, LDAP)
Гибкая настройка ролей и прав доступа
Механизмы MFA (многофакторная аутентификация)
Интеграция с REST API и микросервисами

Использовали Keycloak? 🤔

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Пойми как устроены примитивы в Java

Видео — детальный разбор примитивных типов данных в Java: их размер, диапазон, литералы, а также отличие от классов-оберток (Wrapper Classes, BigInteger, BigDecimal). Рассматривается двоичное представление чисел, переполнение, работа с отрицательными и дробными числами.

📲 Cмотреть источник: тут

👉 Java Portal | #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
Эта таблица содержит временные и пространственные сложности различных алгоритмов сортировки, поиска, работы с графами и строками.

Измеряется в O-нотации (Big-O), которая показывает, как время выполнения или использование памяти алгоритма зависит от размера входных данных n.

Временная сложность (Best, Average, Worst Case) — сколько операций потребуется.
Пространственная сложность (Space Complexity) — сколько дополнительной памяти нужно.

O(1) — постоянное время/память.
O(n) — линейная зависимость от количества данных.
O(log n) — логарифмическая зависимость (уменьшение размерности).
O(n²) — квадратичная зависимость (вложенные циклы).

Чем меньше сложность, тем эффективнее алгоритм 👍

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Основные концепции в Kafka которые нужно знать:

🟡Топики (Topics): Kafka организует сообщения в топики, которые выступают в роли категорий сообщений.
🟡Разделы (Partitions): Каждый топик разделяется на несколько разделов, что позволяет обрабатывать данные параллельно.
🟡Продюсеры (Producers): Отправляют сообщения в топики Kafka.
🟡Потребители (Consumers): Читают сообщения из топиков, обычно в составе групп потребителей для параллельной обработки.
🟡Брокеры (Brokers): Сервера Kafka, которые хранят и передают сообщения.
🟡Zookeeper: Управляет метаданными и выбором лидера для разделов.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Свободный и мощный PDF-движок

Если вам нужен Java-инструмент для работы с PDF без привязки к проприетарным библиотекам, OpenPDF – отличный выбор.

Это форк iText 4, который предлагает все ключевые функции для создания, редактирования и подписи PDF-документов. Полностью open-source и распространяется под LGPL/MPL лицензиями.

Генерация и модификация PDF
Шифрование и цифровые подписи
Поддержка форм и аннотаций
Совместимость с Java-приложениями

Используете OpenPDF? 🤔

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Java: Почему индустрия возвращается к JDBC вместо JPA?

Этот сдвиг набирает популярность в различных отраслях, особенно в высокопроизводительных приложениях.

Для ресурсоемких приложений вручную написанные SQL-запросы часто работают быстрее, чем сгенерированные JPA, обеспечивая лучшую эффективность и удобство сопровождения.

Означает ли это, что JPA мертв? 🩸

Не обязательно. JPA по-прежнему полезен для приложений, где:

🟡Быстрое развитие важнее, чем точная оптимизация производительности.
🟡Доменная модель тесно соответствует реляционной структуре данных.
🟡Взаимодействие с базой данных сосредоточено на CRUD-операциях с минимальным количеством сложных запросов.

Однако в приложениях, требующих высокой пропускной способности, сложного SQL и оптимального использования ресурсов, JDBC становится предпочтительным выбором.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Java Optional - orElse(), orElseGet() и orElseThrow()

Если вы используете Optional.isPresent(), а затем Optional.get(), то вы используете его неправильно. 😕

Вместо этого рекомендуется использовать цепочку Optional (Optional Chaining) с методами:

orElse(value) – если значение присутствует, оно возвращается, иначе возвращается указанное значение.
orElseGet(Supplier) – если значение присутствует, оно возвращается, иначе вызывается переданный метод (лямбда-функция).
orElseThrow(Supplier<Exception>) – если значение отсутствует, выбрасывается исключение.

Использование Optional в функциональном стиле делает код более читаемым, лаконичным и менее подверженным ошибкам.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
50 бесплатных вопросов для подготовки к сертификации Spring Professional Certification

Читать подробнее

👉 Java Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
Семантика доставки в Kafka

At-Least-Once («Как минимум один раз») – гарантирует доставку, но возможны дубликаты.
At-Most-Once («Не более одного раза») – сообщения не дублируются, но возможны потери.
Exactly-Once («Ровно один раз») – гарантирует, что каждое сообщение будет обработано ровно один раз, без потерь и дубликатов.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM