Java Portal | Программирование
11.3K subscribers
798 photos
59 videos
19 files
591 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
加入频道
This media is not supported in your browser
VIEW IN TELEGRAM
Сортировка пузырьком

Один из самых простых алгоритмов сортировки

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Миграция от монолита к микросервисам в Spring Boot Java

Определите границы контекста —> используйте Domain-Driven Design (DDD) для логического разделения модулей

Модульность внутри приложения —> применяйте модули и пакеты Spring для изоляции сервисов

Вынос в микросервисы —> начинайте перенос модулей (например, пользователь, заказы) в отдельные сервисы

Внедрение API Gateway и сервис-дискавери —> используйте Spring Cloud Gateway и Eureka/Nacos

Безопасность взаимодействия —> добавьте уровни безопасности OAuth2/JWT

CI/CD пайплайн —> автоматизируйте сборку, тестирование и деплой с помощью Jenkins/GitHub Actions

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Уровни доступа при наследовании

Подкласс:

private —> Не видно в подклассе

default —> Видно, если в одном пакете

protected —> Видно в подклассе

public —> Видно в подклассе

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Нужен быстрый генератор OTP в Java?

Вот сниппет, который создаёт случайный 4-значный код с помощью Random и String.format()

Идеально подойдёт для логина, регистрации или проверки пользователя

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Мягкое завершение работы Spring Boot приложения

1. Прекратить приём новых запросов

—> Приложение прекращает принимать новые входящие запросы.

2. Дать текущим запросам завершиться

—> Текущим запросам разрешается завершиться

3. Завершить внутренние задачи

—> Внутренние задачи, такие как запланированные задания, завершаются.

4. Оповестить другие сервисы


—> Приложение уведомляет другие сервисы о подготовке к завершению работы.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Быстрее находите и устраняйте ошибки в коде с IntelliJIDEA 👩‍💻

Используйте ⇧F2 (macOS) / Shift + F2 (Windows, Linux), чтобы переходить между проблемами.

Куда бы ни был установлен курсор, IDE сразу перенесёт вас к проблеме с полезными объяснениями и предложениями по быстрому исправлению

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Spring_Annotations_Final.pdf
37.5 KB
25 аннотаций Spring Boot, которые вы должны знать

Сохраняй, чтобы не искать по тысячу раз ❤️

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Java_Hibernate_Interview_Questions_Linked.pdf
24.2 KB
Вопросы для собеседования по Java Hibernate с однострочными ответами

Ставь лайк если полезно 👍

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Скидываю вам список чекеров и плагинов для Error Proneзабрать

Error Prone — это инструмент от Google для анализа Java-кода, который встраивается в компилятор (javac) и находит потенциальные ошибки ещё на этапе компиляции ⌨️

Подойдет для тех, кто хочет усилить Error Prone и сделать код чище, безопаснее и стабильнее

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
5 лучших задач для подготовки к собеседованиям по программированию 🤪

1. Системное проектирование – ссылка
2 Алгоритмы – ссылка
3. SQL – ссылка
4. Linux – ссылка
5. Java – ссылка
6. ООП – ссылка

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Лучшие советы по API REST

Скачать PDF на русском — здесь

Сохрани себе для быстрой шпаргалки

🥁 🥁 🥁

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Осталось всего 2 дня, чтобы прокачать асинхронный код на Scala Future 📢

15 апреля в 18:30 пройдёт открытый вебинар с Валентином Шилиным — старшим программистом и аналитиком данных Deutsche Telekom IT GmbH, экспертом по большим данным и преподавателем курсов по Scala и Apache Spark. Он расскажет:

— как избегать типичных ошибок (блокировки и потерю контекста)
— как комбинировать асинхронные операции (Future.sequence, traverse, for-comprehensions)
— как ускорить и упростить написание кода на Scala

❗️ Если вы хотите перейти с Java на Scala или уже используете Play Framework, Akka или Spark — на вебинаре вы узнаете, как грамотно писать асинхронный код и устранять «подводные камни».

Каждый участник:
— сможет задать вопросы эксперту
— получит скидку на полный курс по Scala-разработке

👉 Не упустите шанс перейти на новый уровень — регистрируйтесь, пока осталось 2 дня

https://otus.pw/h1lG/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Клёвый тренажёр+учебник по SQL

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

В более сложные штуки (к примеру, в оконные функции) этот ресурс не лезет. Ну и запросы даже в самых сложных задачках получаются не сказать чтобы громоздкие

На сайте есть платная версия (которая позволяет смотреть авторские решения), но можно вполне обойтись и без неё

https://sql-academy.org/ru/trainer

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Общие вопросы для собеседования по HashMap в Java 💪

Может ли HashMap содержать null-ключи и null-значения?

—> Да, один null-ключ допускается.
—> Несколько null-значений разрешены.

Потокобезопасен ли HashMap?

—>Нет, не потокобезопасен

Безопасные альтернативы:

Collections.synchronizedMap() (медленнее, блокирует всю карту)
ConcurrentHashMap (предпочтительнее при многопоточности)

Могут ли два разных объекта иметь одинаковый хеш-код?

—> Да. Это называется хеш-коллизия

Что вызывает ConcurrentModificationException?

—> Изменение HashMap во время итерации (например, через for-each) без использования Iterator.remove()

Может ли HashMap содержать два ключа с одинаковым хеш-кодом?

—> Да. HashMap обрабатывает коллизии с помощью цепочек (chaining)

Что происходит при вставке дублирующегося ключа?

—> Новое значение перезаписывает старое для этого ключа

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
JWT vs Сессии — что выбрать для авторизации?

Кратко и наглядно разобрали плюсы и минусы двух популярных подходов

Сохрани себе, пригодится ⚔️

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Генератор надёжных паролей на Java

Пароль с заглавными, строчными, цифрами и спецсимволами? Легко.

С помощью библиотеки Passay можно сгенерировать крепкий 10-символьный пароль буквально в пару строк.

Просто, удобно и безопасно. 😊

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Понимание OAuth 2.0

OAuth 2.0 расшифровывается как Open Authorization 2.0

Это фреймворк авторизации, а не протокол аутентификации.

Назначение —> позволяет сторонним приложениям получать доступ к пользовательским ресурсам без раскрытия пользовательских учетных данных.

Ключевые роли в OAuth 2.0

— Владелец ресурса - пользователь, владеющий защищёнными ресурсами

— Клиент - приложение, запрашивающее доступ к защищённым ресурсам

— Сервер ресурсов - сервер, на котором хранятся защищённые ресурсы

— Сервер авторизации - сервер, выдающий токены доступа после согласия пользователя

Стандартный поток OAuth (Authorization Code Flow)

1. Клиент перенаправляет пользователя на сервер авторизации
2. Пользователь проходит аутентификацию и предоставляет разрешения
3. Сервер авторизации возвращает клиенту код авторизации
4. Клиент обменивает код на токен доступа
5. Клиент использует токен доступа для обращения к защищённым ресурсам

Лучшие практики реализации

Корректная реализация OAuth 2.0 требует внимания к деталям безопасности

Команды разработки часто используют инструменты ревью кода, чтобы на раннем этапе выявить проблемы

Инструменты вроде @coderabbitai могут помочь обнаружить типовые ошибки при реализации OAuth во время ревью

При работе с протоколами авторизации стоит рассмотреть использование анализа кода с фокусом на безопасность

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Типы выходных файлов, создаваемых при компиляции Java-кода

.class — > Выполняется в JVM
.jar — > Упаковка кода для повторного использования
.jmod — >Поддерживает модульные Java-приложения
Native Image — > Нативный образ — > Работает без JVM
.war — >Развёртывание веб-приложений на Java
.ear — > Развёртывание корпоративных Java-приложений
.apk — > Установка Java-приложений на Android
.so — > Компиляция в нативный код (shared object)

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Чему должны научиться Java-разработчики в 2025 году

🔜 Читать: клик

👉 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.

Выделите фрагмент кода и нажмите ⌘⌥L (на macOS) или Ctrl+Alt+L (на Windows/Linux), чтобы отформатировать его согласно настройкам стиля вашего проекта

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Реальные проекты и отличная возможность для старта карьеры: Летняя школа бэкенд‑разработки Яндекса открыла набор

Начинающие бэкендеры, есть планы на лето? Летняя школа бэкенда — ваш шанс прокачаться в разработке, даже если вы обладаете базовыми знаниями в Python, Java или C++.

Как проходит обучение:
— со 2 июня по 27 июля — онлайн-лекции, семинары и практические задания
— с 28 июля по 24 августа — разработка реальных проектов офлайн или онлайн

Вас ждут:
— работа в фулстек-командах в коворкингах Яндекса
— лекции от специалистов компании в летнем лектории
возможность стать частью команды и получить офер: больше половины выпускников становятся стажерами или сотрудниками компании

Школа бесплатная, но нужно пройти отбор. Если у вас есть минимальный опыт в бэкенде и желание стать частью одной из команд сервисов, то отправляйте заявку на обучение до 27 апреля!