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

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
加入频道
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
Создание простого HTTP-сервера в Java

🟡Настройка и обзор проекта.
🟡Управление конфигурацией.
🟡Использование серверных сокетов.
🟡Обработка нескольких подключений с помощью потоков.
🟡Разбор HTTP-запросов.
и тд.

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

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

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