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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#ЛитКод
Задача: 560. Subarray Sum Equals K

Дан массив целых чисел nums и целое число k, вернуть общее количество подмассивов, сумма которых равна k.

Подмассив - это непрерывная непустая последовательность элементов внутри массива.

Пример:
Input: nums = [1,1,1], k = 2
Output: 2


👨‍💻 Алгоритм:

1⃣Самый простой метод - рассмотреть каждый возможный подмассив данного массива nums.

2⃣Найти сумму элементов каждого из этих подмассивов и проверить равенство полученной суммы с заданным k.

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

😎 Решение:
public class Solution {
public int subarraySum(int[] nums, int k) {
int count = 0;
for (int start = 0; start < nums.length; start++) {
for (int end = start + 1; end <= nums.length; end++) {
int sum = 0;
for (int i = start; i < end; i++) {
sum += nums[i];
}
if (sum == k) {
count++;
}
}
}
return count;
}
}


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

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#видео
😇 Создание простого HTTP-сервера в Java

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

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 Какие ассоциативные связи между объектами вы знаете?

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
👍 Создаём HTTP-сервер на Java NIO
Читать подробнее

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

Дайте шанс CompletableFuture! Это идеальный способ выполнять несколько операций параллельно, при этом сохраняя чистый код.

Пример
CompletableFuture.supplyAsync(() -> {
// Долгая операция
return "Hello, ";
}).thenCombine(
CompletableFuture.supplyAsync(() -> {
// Ещё одна операция
return "World!";
}),
(greeting, name) -> greeting + name
).thenAccept(System.out::println); // Выведет "Hello, World!"


Преимущества
🟠Параллельные операции без блокировок.
🟠Чистый и понятный код.
🟠Гибкость при работе с результатами.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 Как работает перехватчик (Interceptor) в Spring Boot?

Когда клиент делает запрос:

1⃣DispatcherServlet первым получает запрос.
2⃣Затем DispatcherServlet использует HandlerMappings, чтобы найти соответствующий Controller.
3⃣Перед тем как запрос достигнет Controller, он проходит через все настроенные перехватчики (Interceptors) и выполняет их метод preHandle().
4⃣Если все методы preHandle() возвращают true, запрос передается в Controller.
5⃣Controller выполняет запрос. После этого запрос проходит через метод postHandle() всех перехватчиков.
6⃣Наконец, если все прошло успешно и методы postHandle() вернули true, вызывается метод afterCompletion() у всех перехватчиков.

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

Ключевые слова - это зарезервированные слова в языке программирования, которые имеют специальное значение и не могут быть использованы для именования переменных, методов и классов. В Java ключевые слова такие как class, static, if и другие определяют структуру и функциональность программы.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Как Java-приложение подключается к базе данных через JDBC?

При разработке Java-приложений часто требуется работать с базой данных. Для этого используется JDBC (Java Database Connectivity) — технология, которая позволяет Java-программе отправлять SQL-запросы и получать данные

Давайте разберемся, как это работает шаг за шагом:

1⃣ Java-приложение
Программа пишет SQL-запрос, который нужно выполнить (например, SELECT * FROM users).

2⃣ JDBC API
Этот запрос передается через JDBC API, который является стандартным интерфейсом взаимодействия с базами данных в Java.

3⃣ Driver Manager (Менеджер драйверов)
JDBC API отправляет запрос в Driver Manager. Этот компонент выбирает правильный драйвер для нужной базы данных.

4⃣ Database Driver (Драйвер базы данных)
Найденный драйвер переводит запрос в понятный для базы данных формат и отправляет его в СУБД.

5⃣ Database (База данных)
База данных выполняет запрос и возвращает результат обратно через все уровни:
Database → Database Driver → Driver Manager → JDBC API → Java-приложение.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 Что такое Spring Boot и чем он отличается от традиционного Spring Framework?

Spring Boot — это упрощённый и удобный фреймворк, построенный на основе Spring Framework. Он значительно облегчает разработку самодостаточных и готовых к продакшену Spring-приложений благодаря следующим особенностям:

🟠Автоконфигурация – автоматически настраивает Spring и сторонние библиотеки в зависимости от присутствующих зависимостей в classpath.

🟠Starter POMs – предоставляет готовые зависимости (starter'ы), упрощая конфигурацию сборки.

🟠Встроенные серверы – включает встроенные сервера, такие как Tomcat и Jetty, устраняя необходимость в сторонних серверных контейнерах.

🟠Без XML-конфигурации – активно использует аннотации, уменьшая количество шаблонного (boilerplate) кода.

Основное отличие от традиционного Spring Framework в том, что Spring Boot автоматизирует настройку, тогда как обычный Spring требует много ручной конфигурации.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 Зачем мы используем дженерики в Java?

🟠Типовая безопасность: Предотвращает возникновение ошибки ClassCastException во время выполнения.

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

🟠Проверка на этапе компиляции: Обнаруживает ошибки на этапе компиляции, а не во время выполнения.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 Может ли статический метод быть переопределенным или перегруженным?

Статический метод не может быть переопределен (override), так как он связан с классом, а не с объектом. Однако статический метод может быть перегружен (overloaded), если используются разные параметры.

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

Параллельность (Concurrency) включает в себя управление несколькими потоками для одновременного выполнения задач, что критически важно для высокопроизводительных приложений

Как это работает?

1⃣ Инициализируем потоки.
2⃣ Проверяем, готовы ли они.
3⃣ Запускаем задачи одновременно.
4⃣ Дожидаемся завершения и закрываем потоки

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🥺 GIT Workflow

Хотите разобраться, как работает Git? Тогда держите наглядный гайд!

1⃣ Initial State – начальное состояние проекта
2⃣ git clone – клонируем удаленный репозиторий
3⃣ Создание нового файла – добавляем что-то новое в проект
4⃣ git add . – отправляем изменения в staging area
5⃣ git commit – фиксируем изменения локально
6⃣ git push – отправляем изменения на удаленный сервер

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Есть один отличный фреймворк — Javalin

Если нужно быстро запустить сервер или сделать небольшое приложение — самое то

Он позволяет настроить сервер легко и без лишних зависимостей. Все, что нужно для REST API или WebSocket — уже встроено.

Идеально для пет-проектов, микросервисов и прототипов

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

Ключевое слово final используется для обозначения, что объект, переменная или метод не могут быть изменены после их инициализации. Оно может быть применено к переменным, методам и классам.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 Как работает Java? Понимание архитектуры языка

Когда мы пишем код на Java, он проходит несколько ключевых этапов перед тем, как стать работающей программой. Вот как это происходит:

1⃣Написав программу, мы получаем исходный код в файле .java.

2⃣Этот код компилируется с помощью компилятора javac, который преобразует его в байт-код (.class). Это промежуточный формат, который понимает только JVM.

3⃣JVM берет этот байт-код и запускает его, выполняя программу.

Внутри JVM происходит:

🟠 Загрузка классов с помощью ClassLoader.
🟠 Управление памятью: разделение на Stack, Heap и Method Area.
🟠 Оптимизация с помощью JIT-компилятора, который превращает байт-код в машинный код для ускорения работы программы.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤯 Команды Docker для Java-разработчика

1⃣ Проверка версии Docker
2⃣ Работа с образами
3⃣ Запуск Java-приложения в контейнере
4⃣ Сборка и запуск контейнера с Java Spring Boot
5⃣ Управление контейнерами
6⃣ Сетевое взаимодействие в Docker
7⃣ Docker Compose (Java + MySQL)
8⃣ Docker Volumes (персистентные данные)
9⃣ Очистка Docker

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