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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#Собес
🤔 Объекты каких стандартных классов immutable в Java?

Примеры неизменяемых классов в Java: String , классы-обертки для примитивов ( Integer, Double , и т.д.), BigInteger, BigDecimal, и некоторые классы из библиотеки java.time ( LocalDate, LocalTime ).

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 625. Minimum Factorization

Если задано целое положительное число num, верните наименьшее целое положительное число x, умножение каждого разряда которого равно num. Если ответа нет или ответ не помещается в 32-битное знаковое целое число, возвращается 0.

Пример:
Input: num = 48
Output: 68


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

1⃣Если num равно 1, верните 1. Инициализируйте массив для хранения множителей.

2⃣Разделите num на множители от 9 до 2, пока num больше 1. Если в процессе остаются множители больше 9, верните 0.

3⃣Постройте результат, собирая найденные множители в обратном порядке. Если результат больше 32-битного целого числа, верните 0.

😎 Решение:
public class Solution {
public int smallestFactorization(int num) {
if (num == 1) return 1;

List<Integer> factors = new ArrayList<>();

for (int i = 9; i >= 2; i--) {
while (num % i == 0) {
factors.add(i);
num /= i;
}
}

if (num > 1) return 0;

long result = 0;
for (int i = factors.size() - 1; i >= 0; i--) {
result = result * 10 + factors.get(i);
if (result > Integer.MAX_VALUE) return 0;
}

return (int) result;
}
}


👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#видео
😊 Хеш-таблица — Самая Популярная Структура Данных

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

Затем модифицируем ее так, чтобы получить хеш-таблицу, то есть структуру данных, хранящую пары ключ-значение.
📲 Cмотреть на ютубе

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Дайте краткую характеристику immutable object. Зачем они нужны?

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какой из этих интерфейсов в Java 8 позволяет выполнять параллельные операции на потоках данных?
Anonymous Quiz
15%
Serializable
4%
Collection
46%
Stream
35%
Runnable
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
❤️‍🔥 Полезный инструмент для работы с JSON

JSON-файлы с высокой вложенностью часто сложно прочитать.

JsonCrack создает графические диаграммы из JSON-файлов и делает их легко читаемыми.
Кроме того, созданные диаграммы можно скачать в виде изображений.
Ссылка на инструмент

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#видео
🤯 Работа Istio с Keycloak для обеспечения безопасности Java приложения

Демо возможностей Istio в локальном кластере Minikube на примере Java приложения и Keycloak.
📺 СМОТРЕТЬ RUTUBE

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

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

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

Локация: Удалённо вне РФ
Компания: Gehtsoft
ЗП: от 4 000 до 6 500 $
Занятость: Полная

Кто нам нужен
Опытный Java-разработчик с 6-7 годами работы. Ищем специалиста, готового работать с legacy проектами, развивать их, поддерживать инфраструктуру и участвовать в тестировании.

🚩Требования
🔵Опыт работы с Java Concurrency
🔵Знание систем обмена сообщениями (Kafka, Solace, Tibco, ActiveMQ, IBM MQ)
🔵Работа с базами данных (Oracle, PostgreSQL, MySQL)
🔵Навыки контейнеризации (Docker) и CI/CD (Jenkins, GitHub Actions, GitLab)
🔵Умение взаимодействовать с клиентами и документировать свою работу
🔵Английский - В2 +

Обязанности
🔵Разработка и тестирование новых функций, устранение причин инцидентов, поддержка инфраструктуры
🔵Ускорение выхода продуктов на рынок и повышение их ценности для клиентов
🔵Снижение технического долга
​​​​​​​​​​​​​​​​
💬 Резюме отправлять: @leahovatatiana

👉Новости 👉Платформа
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
#видео
😊 Простой Telegram-бот на Java и Spring Boot

В данном видеоуроке я показываю как можно разработать свой собственный Telegram-бот на Java с использованием Spring Boot. После просмотра данного видео, вы сможете создать свой собственный Telegram-бот, но уже с более сложным функционалом.

📱 Cмотреть видео

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

Инкапсуляция достигается за счет использования модификаторов доступа ( private, protected, public ) и организации данных в классы. Прямой доступ к полям ограничивается, предоставляя доступ через методы getter и setter .

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

На изображении представлена схема работы Java. 🤯

1⃣ Java-разработчик пишет код на Java, создавая .java файл.
2⃣ Компилятор (javac) компилирует этот код, преобразуя его в байт-код и создавая .class файл.
3⃣ Байт-код выполняется виртуальной машиной Java (JVM) на основе установленного Java Runtime Environment (JRE).
4⃣JVM начинает выполнение с метода public static void main.
5⃣ Результатом выполнения программы является вывод.

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

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#видео
😊 GRADLE. Сборщик проектов. (Java Enterprise - полный курс)

Курс посвящен Gradle, его конфигурации, структуре, управлению зависимостями, созданию тасков, плагинов и работе с многомодульными проектами.
📲 Cмотреть на ютубе

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#hard
Задача: 629. K Inverse Pairs Array

Для целочисленного массива nums инверсная пара - это пара целых чисел [i, j], где 0 <= i < j < nums.length и nums[i] > nums[j]. Учитывая два целых числа n и k, верните количество различных массивов, состоящих из чисел от 1 до n, в которых существует ровно k инверсных пар. Поскольку ответ может быть огромным, верните его по модулю 109 + 7.

Пример:
Input: n = 3, k = 0
Output: 1


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

1⃣Инициализация
Создайте двумерный массив dp размером [n+1][k+1] и установите начальное значение dp[0][0] = 1. Остальные значения установите в 0.

2⃣Заполнение DP-таблицы
Используйте два вложенных цикла для заполнения таблицы DP. Внешний цикл перебирает длину массива i от 1 до n, а внутренний цикл перебирает количество инверсий j от 0 до k. Если j == 0, то dp[i][j] = 1. В противном случае обновляйте dp[i][j] с учетом всех возможных позиций вставки нового элемента в массив длины i-1.

3⃣Возвращение результата
Результатом будет значение dp[n][k].

😎 Решение:
public class Solution {
public int kInversePairs(int n, int k) {
int MOD = 1000000007;
int[][] dp = new int[n + 1][k + 1];
dp[0][0] = 1;

for (int i = 1; i <= n; i++) {
dp[i][0] = 1;
for (int j = 1; j <= k; j++) {
dp[i][j] = dp[i][j - 1] + dp[i - 1][j];
if (j >= i) {
dp[i][j] -= dp[i - 1][j - i];
}
dp[i][j] = (dp[i][j] + MOD) % MOD;
}
}

return dp[n][k];
}
}


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Какие элементы языка отвечают за наследование?

За наследование в Java отвечают ключевые слова extends И implements . Класс- наследник может унаследовать поля и методы родительского класса, а интерфейсы позволяют реализовать множественное наследование.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
🤑 Telegram бот + ИИ Jlama своими руками
Читать статью

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤯 Collectors.teeing

Метод Collectors.teeing, представленный в Java 12, позволяет объединять результаты двух различных коллекторов в одном Stream. Это делает его полезным для выполнения нескольких операций над потоком данных одновременно.

👉Новости 👉Платформа
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
#собес
🤔 Что такое стектрейс? Как его получить?

Стектрейс - это список методов, которые были вызваны до момента возникновения ошибки. Он помогает понять, где произошла ошибка, и выявить проблемные участки кода. Получить его можно из исключений через printStackTrace() или getStackTrace() .

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