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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#собес
🤔 Расскажите о подражании Java. Каковы особенности использования ключевого слова super?

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

👉Новости 👉Платформа
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.

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

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

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

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

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

Сигнатура метода в Java - это его имя и список типов параметров (их порядок важен). Она используется для различения методов в одном классе. Возвращаемый тип и модификаторы доступа не являются частью сигнатуры.

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

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

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

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

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

Инициализатор - это блок кода, который используется для инициализации переменных или выполнения логики до конструктора. Бывают статические и нестатические (экземплярные) инициализаторы.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN 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