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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#полезное
🥺 Способы сравнения строк в Java

1. == → Сравнивает адреса в памяти
2. .equals() → Сравнивает содержимое строк
3. .compareTo() → Лексикографическое сравнение
4. .equalsIgnoreCase() → Сравнивает без учёта регистра
Подробнее тут

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

GitOps — это метод управления инфраструктурой и приложениями через Git- репозитории. Изменения в коде инфраструктуры автоматически применяются через CI/CD-процессы.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😎 В чём разница между throw и throws в Java?

throw

🟠 Используется для явного выбрасывания исключения.
🟠 Синтаксис: throw new ExceptionType("сообщение");
🟠 Применяется внутри метода или блока.

throws

🔵 Объявляет возможные исключения, которые может выбросить метод.
🔵 Указывается в сигнатуре метода.
🔵 В основном используется для проверяемых исключений

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Упростите свой бизнес-код на Java с помощью Flow DSL

🔜 Читать: клик

👉 Java Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😵‍💫 ProcessHandle.
children()


ProcessHandle.children() возвращает поток (Stream<ProcessHandle>) дочерних процессов текущего процесса. Это полезно для мониторинга запущенных подпроцессов и управления ими.

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

Code coverage (покрытие кода тестами) - это показатель, показывающий, какая часть кода протестирована автоматическими тестами. Выражается в процентах: чем выше показатель, тем меньше риск появления багов.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 MethodHandles.
dropArguments()


MethodHandles.dropArguments() создаёт MethodHandle, который игнорирует определённые аргументы перед вызовом целевой функции. Это полезно для адаптации методов с разными сигнатурами.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 StackWalker.
getInstance()


StackWalker.getInstance() позволяет получать информацию о стеке вызовов во время выполнения программы, упрощая отладку и логирование.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
🤯 Как создавать многомодульные проекты в Spring Boot
Читать клик

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #CIcd
🤔 Что такое Infrastructure as Code (laC) ?

Infrastructure as Code (laC) - это метод управления и развертывания IT- инфраструктуры с помощью кода, а не ручной настройки серверов. Это позволяет автоматизировать, версионировать и обеспечивать единообразие среды.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🫠 Внутренности Java switch

Как компилятор выбирает, какую инструкцию использовать?

Первое, что нужно знать: любой switch в Java компилируется в одну из двух JVM-инструкций:

> tableswitch

> lookupswitch

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

Следующий код сгенерирует tableswitch:

public String tableSwitch() {
return switch (value) {
case 1 -> "one";
case 2 -> "two";
case 4 -> "four";
default -> "other";
};
}


А вот этот код сгенерирует lookupswitch:

public String lookupSwitch() {
return switch (value) {
case 1 -> "one";
case 10 -> "ten";
case 100 -> "one hundred";
default -> "other";
};
}


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Шикарный разбор, как работает switch в Java на уровне JVM

Что из них выберет компилятор — зависит от распределения case-ов

Автор показал, как это работает на байткоде > дизассемблирует, сравнивает варианты и объясняет, почему структура switch влияет на производительность

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 Совет для IntelliJ — свой значок проекта

Можно задать кастомную иконку для проекта в IntelliJ — она будет отображаться на экране приветствия

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

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👨‍💻 Locale.getDefault()

Locale.getDefault() позволяет получить текущую локаль системы, что полезно для работы с форматированием дат, чисел и текста.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😬 Совет для джавистов в IntelliJ IDEA:

Знаешь ли ты, что можно использовать встроенный HTTP-клиент IntelliJ, чтобы ускорить работу с Java?

После этого тебе Postman больше не понадобится.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#medium
Задача: 673. Number of Longest Increasing Subsequence

Дан массив целых чисел nums, верните количество самых длинных строго возрастающих подпоследовательностей.

Пример:
Input: n = 1, presses = 1
Output: 2
Explanation: Status can be:
- [off] by pressing button 1
- [on] by pressing button 2


Алгоритм:

1⃣Объявите два массива динамического программирования length и count, и инициализируйте их значениями length[i]=1 и count[i]=1. Итерируйте i от 0 до n−1. Для каждого i итерируйте j от 0 до i−1 и, если nums[j] < nums[i], обновите length[i] и count[i] в зависимости от значений length[j] и count[j].

2⃣Найдите максимальное значение в массиве length и сохраните его в переменной maxLength. Инициализируйте переменную result = 0.

3⃣Итерируйте i от 0 до n−1 и, если length[i] = maxLength, добавьте count[i] к result. Верните result.

Решение:
class Solution {
public int findNumberOfLIS(int[] nums) {
int n = nums.length;
int[] length = new int[n];
int[] count = new int[n];
Arrays.fill(length, 1);
Arrays.fill(count, 1);

for (int i = 0; i < n; i++) {
for (int j = 0; j < i; j++) {
if (nums[j] < nums[i]) {
if (length[j] + 1 > length[i]) {
length[i] = length[j] + 1;
count[i] = 0;
}
if (length[j] + 1 == length[i]) {
count[i] += count[j];
}
}
}
}

int maxLength = Arrays.stream(length).max().getAsInt();
int result = 0;

for (int i = 0; i < n; i++) {
if (length[i] == maxLength) {
result += count[i];
}
}

return result;
}
}


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #CIcd
🤔 Что такое blue-green deployment?

Blue-green deployment - это стратегия развертывания, при которой две среды (синяя и зелёная) работают параллельно. Новая версия приложения разворачивается в зелёной среде, тестируется, а затем весь трафик переключается на неё, превращая её в новую продакшн-среду.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 Анонс: Azure Command Launcher для Java

jaz — новый инструмент запуска JVM, оптимизированный под Azure. Он предлагает более подходящие настройки по умолчанию для Java-приложений в контейнерах и на виртуалках.

И это ещё не всё — впереди больше обновлений.
подробнее

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#статьи
😅 Нашёл годную статью — подробный гайд по ООП в Java: принципы, концепты и реальные примеры. Если ты новичок или хочешь освежить базу — заходи смело. Всё объяснено доступно и с кодом.
источник

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM