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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#полезное
😊 Шпаргалка по основам Java с примерами кода.

В ней есть всё, что может пригодиться начинающему разработчику.

Оригинал в хорошем качестве можно взять тут

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

CountDownLatch — это синхронизационный механизм, предоставляемый пакетом java.util.concurrent, который позволяет одному или нескольким потокам ждать, пока определенное количество операций завершится, прежде чем они смогут продолжить свою работу. Он полезен в ситуациях, когда нужно дождаться завершения нескольких параллельных задач, прежде чем продолжить выполнение кода.

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

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

Класс - это шаблон или "чертеж" для создания объектов, определяющий их свойства и поведение.
Объект - это конкретный экземпляр класса с определенными значениями свойств.
Интерфейс - это контракт, который определяет набор методов, которые должен реализовать класс.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😊 Изучите приоритеты конфигурации Spring Boot и различия между файлами .yaml и .properties на наглядных примерах

Статья объясняет приоритетность загрузки конфигурационных файлов в приложениях (например, на Spring Boot) и сравнивает форматы YAML и properties: YAML удобнее для сложных структур благодаря иерархии, а properties-файлы проще и подходят для плоских настроек.
Подробнее

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 Инструмент для бенчмаркинга и оптимизации Kafka

KafkaOptimize — включает скрипты для измерения пропускной способности, настройки серверных и клиентских параметров, а также для оптимизации производительности Kafka.

В нем реализована симуляция сетевой задержки и мониторинг аппаратных узких мест.
Ознакомиться

👉Новости 👉База вопросов
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
#собес
🤔 Что такое класс POJO? Приведите пример такого класса.

PJO (Plain Old Java Object) - это простой Java-класс без сложных зависимостей. Он используется для хранения данных и не содержит бизнес-логики.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#видео
😊 Общение микросервисов между собой

Это видео посвящёно интеграции Apache Kafka с Spring. В нём рассматриваются:

🟠Создание Kafka-топика с использованием Spring
🟠Настройка Producer-а и Consumer-а для работы с одним топиком
🟠Организация взаимодействия между сервисами через Kafka
📱 Cмотреть видео

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

Повышайте свою продуктивность, а именно: находите ответы быстрее прямо в IntelliJIDEA!

1⃣ Установите плагин Help Search через Настройки | Плагины | Маркетплейс.
2⃣ Нажмите ⇧⇧ | Shift+Shift, перейдите на вкладку Help и ищите любую нужную информацию!
Ссылка на плагин

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 Шпаргалка по Spring Framework

Включены ключевые технологии, такие как Spring Boot, Dependency Injection (DI), Inversion of Control (IoC), Spring MVC, Spring Data JPA, Spring Security и другие.

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

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

Класс может содержать поля (свойства), методы, конструкторы, статические блоки, вложенные классы, интерфейсы и аннотации.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 358. Rearrange String k Distance Apart

Дана строка s и целое число k, переставьте символы в s так, чтобы одинаковые символы находились на расстоянии не менее k друг от друга. Если невозможно переставить строку, верните пустую строку "".

Пример:
Input: s = "aabbcc", k = 3
Output: "abcabc"
Explanation: The same letters are at least a distance of 3 from each other.


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

1⃣Создайте словарь частот для символов строки и определите максимальную частоту.

2⃣Разделите символы на группы по частоте и создайте сегменты для размещения символов.

3⃣Распределите оставшиеся символы по сегментам, проверяя условия, и объедините сегменты в итоговую строку.

😎 Решение:
class Solution {
public String rearrangeString(String s, int k) {
Map<Character, Integer> freqs = new HashMap<>();
int maxFreq = 0;

for (char c : s.toCharArray()) {
freqs.put(c, freqs.getOrDefault(c, 0) + 1);
maxFreq = Math.max(maxFreq, freqs.get(c));
}

Set<Character> mostChars = new HashSet<>();
Set<Character> secondChars = new HashSet<>();

for (char c : freqs.keySet()) {
if (freqs.get(c) == maxFreq) mostChars.add(c);
else if (freqs.get(c) == maxFreq - 1) secondChars.add(c);
}

StringBuilder[] segments = new StringBuilder[maxFreq];
for (int i = 0; i < maxFreq; i++) segments[i] = new StringBuilder();

for (char c : mostChars) {
for (int i = 0; i < maxFreq; i++) segments[i].append(c);
}
for (char c : secondChars) {
for (int i = 0; i < maxFreq - 1; i++) segments[i].append(c);
}

int segmentId = 0;
for (char c : freqs.keySet()) {
if (mostChars.contains(c) || secondChars.contains(c)) continue;
for (int freq = freqs.get(c); freq > 0; freq--) {
segments[segmentId].append(c);
segmentId = (segmentId + 1) % (maxFreq - 1);
}
}

for (int i = 0; i < maxFreq - 1; i++) {
if (segments[i].length() < k) return "";
}

return String.join("", segments);
}
}


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤯 22 библиотеки и API, которые, по мнению автора, являются необходимыми для Java в 2025 году

В списке есть инструменты для модульного тестирования (JUnit, Mockito), работы с JSON (Jackson, Gson), логирования (SLF4J, Log4j2), HTTP-запросов (Apache HttpClient), XML (JAXB, Xerces), а также универсальные утилиты (Apache Commons, Google Guava
Читать подробнее

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#полезное
😊 Java Version Almanac — коллекция информации об истории и будущем языка программирования Java.

Сайт предоставляет подробные сведения о различных версиях Java, включая документацию, новые API, добавленные функции и варианты загрузки. На сайте также можно найти информацию о новых функциях, представленных в различных версиях JDK

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN 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