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

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

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

Для связи: @ruslan_kuyanets
Download 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
#статьи
🛞 Введение в реактивное программирование
Читать статью

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

Полиморфизм реализуется через ключевые элементы: наследование ( extends ), интерфейсы ( implements ), перегрузку методов ( overloading ) и переопределение методов ( overriding ). Он позволяет использовать один и тот же код для работы с объектами разных типов.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😊 Юнит-тестирование сервисного уровня в приложении Spring Boot (JUnit 5 и Mockito)

Как настроить окружение для тестирования, включая добавление необходимых зависимостей, таких как spring-boot-starter-test, .

✔️В статье рассмотрим процесс создания тестов для сервисных компонентов, где репозитории заменяются на mock-объекты с помощью Mockito. Основное внимание уделяется проверке бизнес-логики приложения без взаимодействия с реальной базой данных, что позволяет обеспечить изоляцию тестов и повысить их эффективность.
Читать статью

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#видео
🤓 Создание приложения-чатбота с помощью Spring Boot, React JS и ChatGPT API

В этом пошаговом руководстве пройдем через весь процесс разработки, от настройки бэкенда с помощью Spring Boot до создания интерактивного фронтенда с помощью React JS и интеграции API ChatGPT от OpenAI для интеллектуальных ответов.
📱 Cмотреть видео

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
🥺 Подробное руководство по реализации аутентификации и авторизации на основе JWT в приложении Spring Boot 3 с использованием Spring Security и базы данных MySQL.

В этом руководстве автор демонстрирует создание REST API для входа пользователей, генерации JWT и его возврата в ответе
Читать статью

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#собес
🤔 Что такое перегрузка (overloading) метода?

Перегрузка - это определение методов с одинаковым именем, но с разным количеством или типами параметров. Она используется для повышения удобства и читабельности кода.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😊 Попрощайтесь с GC и проблемами с многопоточностью!

Ведь можно улучшить качество кода на Java и Kotlin с профилировщиком IntelliJIDEA

Запишите снимок, а затем проанализируйте активность потоков во вкладке Timeline.
Подробнее

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