Java Backend | YeaHub
488 subscribers
102 photos
22 videos
2 files
217 links
Теория, подготовка к интервью и курсы для Java разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
#полезное
👍 Что такое грациозное завершение работы Spring Boot-приложения?

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

🟠Запросы, которые уже обрабатываются, получают возможность завершиться. Для других внутренних задач, таких как запланированные задания или обработка сообщений из очереди (MQ), приложение обеспечивает завершение текущих операций и предотвращает запуск новых.

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 Что такое анонимные классы?

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😊 Совет по IntelliJIDEA

Оставайтесь сосредоточенными на кодинге и оптимизируйте свой рабочий процесс в IntelliJIDEA с помощью Run Anything!

Быстро запускайте конфигурации выполнения/отладки, приложения, скрипты, команды и задачи или даже открывайте недавние проекты – из любого места в IDE

Нажмите ⌃⌃ | Ctrl+Ctrl, чтобы открыть всплывающее окно Run Anything

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😐 @TransactionalEvent
Listener

Это специализированный @EventListener, который слушает событие и ожидает завершения текущей транзакции перед его обработкой. Ожидание консистентного состояния базы данных позволяет гораздо безопаснее реагировать на изменения, внесенные в БД.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 Сравнение Comparator и Comparable в Java

Comparable — для встроенной сортировки. Допустим string, Integer
Comparator — для гибкой сортировки. К примеру, сортировка списка по разным полям

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 Что такое примитивные классы?

Тримитивные классы - это классы -обертки для примитивных типов данных, которые позволяют использовать примитивы как объекты. Например, Integer для типа int, Double для типа double .

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Пирамида тестирования Java

1⃣Unit-тесты (JUnit, Mockito) — проверяют отдельные методы и классы.

🟠 Самые быстрые
🟠 Легко писать
🟠 Ловят баги на старте

Пиши как можно больше

2⃣Integration-тесты (Testcontainers) — тестируют взаимодействие между модулями (например, сервис <-> база).

🟠 Работают с реальными зависимостями
🟠 Помогают избежать сюрпризов на проде

3⃣API-тесты (Postman, RestAssured) — проверяют REST-эндпоинты.

🟠 Тесты бизнес-логики
🟠 Можно автоматизировать или делать вручную

4⃣UI-тесты (Selenium) — имитируют действия пользователя.

🟠 Медленные
🟠 Ломаются чаще

Используй по минимуму, только для самых важных сценариев

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Зачем нужен Spring Framework?

Spring Framework - это мощный инструмент для упрощения разработки приложений. Он предоставляет механизм управления зависимостями (Dependency Injection), гибкость конфигурации, интеграцию с различными технологиями и поддержку создания веб-приложений. Благодаря своей модульности и широким возможностям, Spring подходит как для небольших проектов, так и для крупных корпоративных систем.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
🤓 23 шаблона проектирования для 99% разработчиков на Java

В этом исчерпывающем руководстве мы изучим все важные шаблоны ООП для написания кода.

Шаблоны проектирования  —  это испытанный способ решения проблемы в заданном контексте. Они скорее открыты, нежели придуманы, что очевидно и из применения слова «шаблон». Используя шаблон проектирования, вы получаете знания всех сообществ для безопасного решения этой проблемы.

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🥺 Графовые алгоритмы — шпаргалка для Java Developer

Сводная таблица по всем основным алгоритмам на графах: обход, кратчайшие пути, минимальные остовные деревья, циклы, топология, компоненты связности и продвинутые техники

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Какой жизненный цикл Spring Beans?

Жизненный цикл Spring Bean состоит из этапов создания, настройки зависимостей, инициализации, использования и уничтожения. Контейнер автоматически выполняет все эти шаги, вызывая методы, такие как @PostConstruct для настройки перед использованием и @PreDestroy ДЛЯ завершения работы. Пользователи могут настраивать этапы жизненного цикла через интерфейсы или аннотации.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
Особенности Java Records

🟠Снижение шаблонного кода — Нет необходимости вручную писать конструкторы,
геттеры, equals(), hashCode() и toString()

🟠Неизменяемы по умолчанию — все поля являются final

🟠Эффективны по памяти — JVM оптимизирует выделение памяти.

🟠Без дополнительных зависимостей — являются частью Java с версии 14

🟠Инкапсуляция — данные хорошо структурированы и неизменяемы.

Ограничения Java Records

🟠Нет сеттеров — поля final и не могут быть изменены

🟠Нельзя расширять классы — Records неявно являются final и не могут наследоваться от других классов.

🟠Ограниченная настройка — не поддерживают аннотации вроде @JsonIgnore для полей

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 hibernate-orm — популярный фреймворк для Java, который упрощает взаимодействие между объектно-ориентированными приложениями и реляционными базами данных!

Hibernate реализует спецификацию JPA (Java Persistence API) и предоставляет дополнительные возможности для работы с базами данных, такие как кэширование и трансакции.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Динамический массив

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

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


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое Bean?

Bean в Spring - это объект, который управляется контейнером Spring loC (Inversion of Control). Бины обычно создаются, настраиваются и используются для инкапсуляции бизнес-логики, управления данными или предоставления сервисов. Контейнер Spring автоматически управляет жизненным циклом бина, его зависимостями и настройками.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
👨‍💻 Сортировка пузырьком

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

👉Новости 👉База вопросов
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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😇 Уровни доступа при наследовании

Подкласс:

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

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

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

public —> Видно всем

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Какие Spring Scope знаешь?

Основные области видимости Spring: Singleton, Prototype, Request, Session, Application, WebSocket.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😴 ByteArrayOutput
Stream.writeTo()

Метод ByteArrayOutputStream.writeTo() позволяет записывать содержимое байтового массива (ByteArrayOutputStream) напрямую в другой выходной поток (OutputStream). Это удобно, когда нужно перенаправить данные, например, в файл или сетевой сокет, без промежуточного копирования.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM