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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#Собес
🤔 Что такое OutOfMemoryError?

OutOfMemoryError возникает, когда программа не может выделить достаточно памяти для выполнения операции. Это может произойти из-за утечек памяти, создания слишком большого количества объектов или ограничений JVM.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какой метод интерфейса Map возвращает множество ключей?
Anonymous Quiz
41%
getKeys()
32%
keySet()
19%
keyList()
8%
keys()
#ЛитКод
Задача: 623. Add One Row to Tree

Учитывая корень бинарного дерева и два целых числа val и depth, добавьте ряд узлов со значением val на заданную глубину depth. Обратите внимание, что корневой узел находится на глубине 1. Правило добавления таково: учитывая целое число depth, для каждого ненулевого узла дерева cur на глубине depth - 1 создайте два узла дерева со значением val в качестве левого поддерева корня cur и правого поддерева корня.
Оригинальное левое поддерево cur должно быть левым поддеревом нового корня левого поддерева. Оригинальное правое поддерево cur должно быть правым поддеревом нового корня правого поддерева. Если глубина == 1, то есть глубина - 1 вообще не существует, создайте узел дерева со значением val как новый корень всего оригинального дерева, а оригинальное дерево - левое поддерево нового корня.

Пример:
Input: root = [4,2,6,3,1,5], val = 1, depth = 2
Output: [4,1,1,2,null,null,6,3,1,5]


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

1⃣Если depth равна 1, создайте новый корень со значением val и сделайте текущий корень левым поддеревом нового корня.

2⃣Используйте обход в ширину (BFS) для поиска всех узлов на глубине depth - 1.

3⃣Для каждого узла на глубине depth - 1, вставьте новые узлы со значением val в качестве левого и правого поддеревьев, сохраняя исходные поддеревья.

😎 Решение:
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}

public class Solution {
public TreeNode addOneRow(TreeNode root, int val, int depth) {
if (depth == 1) {
return new TreeNode(val, root, null);
}

Queue<TreeNode> queue = new LinkedList<>();
queue.add(root);
int currentDepth = 1;

while (!queue.isEmpty()) {
if (currentDepth == depth - 1) {
for (TreeNode node : queue) {
node.left = new TreeNode(val, node.left, null);
node.right = new TreeNode(val, null, node.right);
}
break;
}
currentDepth++;
int size = queue.size();
for (int i = 0; i < size; i++) {
TreeNode node = queue.poll();
if (node.left != null) queue.add(node.left);
if (node.right != null) queue.add(node.right);
}
}

return root;
}
}


👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Назовите все методы класса Object.

Класс Object содержитметоды: equals (), hashCode(), toString(), getClass(), clone(), finalize(), wait(), notify(), notifyAll() иметоды для синхронизации потоков ( wait(long timeout) , wait(long timeout, int nanos) ). Эти методы предоставляют базовый функционал, доступный для всех объектов в Java.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#вакансии
👨‍💻 JAVA DEVELOPER

Локация: Удаленно в РФ
Компания: SML
ЗП: от 200 000 р. на руки
Занятость: Полная
Уровень позиции: Senior, Middle.

Задачи: От создания умного помощника для консультирования покупателей в автоматическом режиме до уникального решения по автоматизации бизнес-процессов подразделения.

Обязательные требования:
Java 11-17 от 4-х лет;
NoSQL;
Spring, Spring Boot.
Kotlin, RabbitMQ, Kafka, Rest, SOAP, ElasticSearch, Kubernetes, Prometheus, Grafana, GitLab, Docker.

📱 Резюме отправлять: @fr_rec

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какая из следующих функций относится к методам класса Object?
Anonymous Quiz
36%
equals()
6%
notifyAll()
7%
wait()
51%
Все вышеуказанные
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😊 Платформа для управления данными на Java

С её помощью можно превращать обычные текстовые запросы в SQL-коды.

Он предназначен для упрощения взаимодействия с базами данных и повышения продуктивности работы
Гитхаб

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 В чем разница между try-with-resources и try- catch-finally при работе с ресурсами?

try-with-resources автоматически закрывает ресурсы, такие как потоки или файлы, после завершения блока. В try-catch-finally закрытие ресурсов нужно обрабатывать вручную в блоке finally , что увеличивает обьем кода и может привести к ошибкам.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 624. Maximum Distance in Arrays

Вам дано m массивов, где каждый массив отсортирован по возрастанию. Вы можете взять два целых числа из двух разных массивов (каждый массив выбирает одно) и вычислить расстояние. Мы определяем расстояние между двумя целыми числами a и b как их абсолютную разность |a - b|. Верните максимальное расстояние.

Пример:
Input: arrays = [[1,2,3],[4,5],[1,2,3]]
Output: 4


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

1⃣Найдите минимальный элемент из всех первых элементов массивов и максимальный элемент из всех последних элементов массивов.

2⃣Рассчитайте максимальное расстояние между минимальным и максимальным элементами.

3⃣Верните это максимальное расстояние.

😎 Решение:
import java.util.List;

public class Solution {
public int maxDistance(List<List<Integer>> arrays) {
int minVal = arrays.get(0).get(0);
int maxVal = arrays.get(0).get(arrays.get(0).size() - 1);
int maxDistance = 0;

for (int i = 1; i < arrays.size(); i++) {
maxDistance = Math.max(maxDistance, Math.abs(arrays.get(i).get(arrays.get(i).size() - 1) - minVal), Math.abs(arrays.get(i).get(0) - maxVal));
minVal = Math.min(minVal, arrays.get(i).get(0));
maxVal = Math.max(maxVal, arrays.get(i).get(arrays.get(i).size() - 1));
}

return maxDistance;
}
}


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

Конструкторы - это специальные методы, используемые для создания и инициализации объектов. Основные типы: конструктор по умолчанию, пользовательский (с параметрами) и копирующий конструктор.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#полезное
😊 Docker с 0 до 100%. Всё, что нужно знать

Видео представляет основы Docker, включая установку, команды, управление портами, переменные окружения, работу с данными, сетью, созданием контейнеров, Docker Compose и использование Portainer для управления.
📲 Смотреть ютуб

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#вакансии
👨‍💻 Backend разработчик (middle+)

Локация: Удалённо
Компания: ООО Транслогика
ЗП: от 200 000 до 250 000 р.
Занятость: Полная

Для проектирования и реализации микросервисов продукта ищем в команду Backend-разработчика уровня Middle+.

Наш стек: Java/ Kotlin, Microservices архитектура, Spring-фреймворк.

🚩Задачи, которые будешь решать
🔵 Реализация бизнес-логики
🔵 Рефакторинг
🔵 Обеспечение отказоустойчивости (circuit breaker, retry policies)
🔵 Подключение к сторонним API
🔵 Настройка обмена сообщениями между сервисами Kafka/RabbitMQ
🔵 Проектирование событийной модели

​​​​​​​Что ждем от тебя
🔵 Опыт коммерческой backend разработки от 4-х лет, в том числе работа с высоконагруженными и распределёнными системами
🔵 Отличное знание Java, Kotlin, Spring (multithreadingm jvm)
🔵 Понимание микросервисной архитектуры и опыт её реализации
🔵 Знание PostgreSQL
🔵 Опыт работы с RabbitMQ, Kafka, JUnit, k8s/OpenShift Web

🚩Условия
🟡 Официальное трудоустройство и белая зарплата в рынке
🟡 5/2, фултайм, удалёнка
🟡 Интересный, долгосрочный проект
🟡 Сильная команда, возможность развития в указанном стеке
🟡 Продукт, который реально помогает клиентам
🟡 Этапы отбора: встреча с HR, выполнение тестового задания и встреча с TechLead-ом, финальное интервью.

📩 Резюме отправлять: mskulkinagr@yandex.ru

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какой метод сервлета вызывается при получении GET-запроса?
Anonymous Quiz
5%
doPost()
77%
doGet()
8%
service()
10%
init()
#Собес
🤔 Что такое побитовые операции?

Побитовые операции выполняются на уровне битов целых чисел. Примеры: & (побитовое И), | (побитовое ИЛИ), ^ (побитовое исключающее ИЛИ), ~ (побитовое отрицание), а также сдвиги ‹‹, ›› , >>› . Они используются для оптимизации операций, таких как флаги, маски и работа с бинарными данными.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😊 Это клавиатура Android на Java

Для безопасных сквозных зашифрованных сообщений по протокол Signal, в любом мессенджере.

Общайтесь безопасно и независимо, независимо от правовой ситуации или того, используют ли мессенджеры E2EE. Сервер не нужен.

🟠ввод сообщений через отдельное текстовое поле на клавиатуре
🟠шифрование/дешифрование сообщений
🟠использовать буфер обмена для чтения сообщений
🟠журнал сообщений для просмотра отправленных/полученных сообщений
🟠Темная и светлая тема
и многое другое...
Гитхаб

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какой из следующих классов не является потоко-безопасным?
Anonymous Quiz
28%
StringBuffer
35%
StringBuilder
13%
ConcurrentHashMap
24%
CopyOnWriteArrayList
#полезное
😊 В чем разница между ActiveMQ, RabbitMQ и Kafka

🟠ActiveMQ: Лучше всего подходит для сценариев, где критична совместимость с JMS и поддержка различных протоколов, с фокусом на интеграцию с предприятиями и надежность.

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

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM