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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#Собес #bash
🤔 Как удалить все .log файлы в директории?

Чтобы удалить все .log файлы в текущей папке, выполните:
rm *. log

Для удаления в подкаталогах используйте:
find . -name "*.1og" -delete


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
🫡 В этом гайде автор показывает, как парсить структурированные строки в Java

Большинство разработчиков используют регулярные выражения, split() или ручную нарезку строк. Но эти техники подвержены ошибкам, плохо читаются и, что важнее всего — небезопасны на этапе компиляции.
Класс StringFormat делает парсинг настолько простым, что даже новичок может реализовать его в одну строку.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#статьи
😊 В этом гайде автор делится, как писать удобные интеграционные тесты в Spring Boot

Многие разработчики либо перегружают @SpringBootTest, либо пишут сложные конструкции с @MockBean. Но такие подходы тормозят сборку, плохо читаются и, что важнее всего — дают ложное чувство покрытия.

Класс MockMvc и аннотация @WebMvcTest делают тестирование контроллеров лёгким и быстрым, можно проверить весь HTTP-флоу без запуска сервера.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
😊 Совет по Java: предпочитай внедрение через конструктор, а не через поля

На то есть разные причины:

🟠 Зависимости можно пометить как final, гарантируя, что они не изменятся после создания.

🟠 Повышает надёжность класса и безопасность при работе с потоками

🟠 Заставляет вызывающий код (или DI-контейнер) передать все необходимые зависимости

🟠 Упрощает модульное тестирование, позволяя подставлять моки или стабы через конструктор

🟠 Все зависимости видны в конструкторе, что чётко показывает, что нужно классу для работы.

🟠 Внедрение через конструктор не использует рефлексию или доступ к приватным полям (в отличие от внедрения через поля), что повышает производительность и снижает риски

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#Собес #bash
🤔 Как вывести только каталоги в папке?

Чтобы отобразить только папки, используйте:
Is -d */

Или команду find :
find . -type d


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

TerminalBuilder.build() из библиотеки JLine позволяет создавать интерактивные терминалы с поддержкой ANSI-цветов, автодополнения и управления вводом. Это полезно для создания CLI-приложений с удобным интерфейсом.
Документация

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
#полезное
🛞 Ставить @Transactional везде подряд плохая практика — сначала разберись, когда он действительно нужен:

🟠Использовать @Transactional только в сервисном слое — Отделяет бизнес-логику от веб-логики

🟠Использовать транзакции на уровне методов — Даёт точный контроль и ясность

🟠Использовать @Transactional(readOnly = true) — Оптимизирует операции только для чтения

🟠Избегать @Transactional в репозиториях — Репозитории не должны управлять транзакциями

🟠Оставлять транзакционные методы public — Необходимо для работы Spring-прокси

🟠Логировать или отслеживать поведение транзакций — Помогает выявлять неожиданные проблемы

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🥄 Это просто огонь. В одном из следующих релизов jetbrains / intellijidea появится фича, которая позволяет в пару кликов сгенерировать JPA-энтити из существующей схемы БД

И ещё, мне сказали, что SpringData JDBC тоже скоро завезут

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1
#Собес #bash
🤔 Как посчитать количество строк в файле?

Для подсчёта строк в файле используйте:
wc -1 file.txt

Эта команда выведет количество строк в файле.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
🤓 Java API Tip

Безопасное приведение long к int

Используй Math.toIntExact() — этот метод возвращает значение long, но выбрасывает ArithmeticException, если оно не помещается в int

Без него преобразование произойдёт молча — и ты можешь получить некорректный результат без всяких ошибок.

Используй toIntExact, когда важно контролировать переполнение

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#видео
😐 Указание типа после ключевого слова new — это действительно допустимая конструкция в Java.

Об этом и многом другом — в видео

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Собес #bash
🤔 Как переместить файлы в Bash?

Чтобы переместить файл, используйте mv :
mv source_file destination_directory/

Команда mv также используется для переименования:
mv old_name.txt new_name.txt


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
#полезное
🛞 Типы массивов в Java

В Java существует два основных типа массивов:

Регулярные массивы — фиксированное число строк и столбцов

Регулярные массивы делятся на:

🟠 1-мерные массивы
🟠 2-мерные массивы
🟠 3-мерные и более

Во всех случаях каждая строка содержит одинаковое количество элементов.

🟠 Зубчатые массивы

Это массив массивов, в котором вложенные массивы могут иметь разную длину.

Можно создавать 2D или 3D массивы с переменным числом столбцов в каждой строке.

Одномерный массив (1D array) — это список элементов, хранящихся в одной строке. Он используется для хранения нескольких значений одного типа в линейной форме

Синтаксис:

dataType[] arrayName = new dataType[size];


или

dataType[] arrayName = {value1, value2, value3, ...};


Пример: Список студентов в одном классе.

class MasterBackend {
public static void main(String[] args) {
// 1D Array: Students in a single class
String[] students = {"Ayush", "Rahul", "Neha", "Priya"};

System.out.println("Students in a class:");
for (String student : students) {
System.out.println(student);
}
}
}


Вывод:

Students in a class:
Ayush
Rahul
Neha
Priya


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
Что такое SSO (Single Sign-On)?

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
👋 Инструменты повышения продуктивности и качества кода в Java

1⃣ Lombok — устраняет шаблонный код, автоматически генерируя геттеры, сеттеры, конструкторы и т.д.

2⃣ MapStruct — генерирует типобезопасные мапперы между DTO и сущностями на этапе компиляции.

3⃣ JRebel — позволяет горячую перезагрузку классов Java без перезапуска приложения (экономит массу времени).

4⃣ SonarLint — линтер в IDE в реальном времени для обнаружения багов и "запахов кода" по мере написания.

5⃣ SonarQube — платформа статического анализа кода с дашбордами и quality gates.

6⃣Checkstyle — обеспечивает соблюдение стандартов кодирования и правил оформления.

7⃣ SpotBugs — сканирует байткод для выявления потенциальных ошибок и проблем с производительностью.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
#Собес #bash
🤔 Что означает S? в Bash?

$? содержит код завершения последней команды:
- 0 - успешное выполнение.
- 1 и другие - ошибка.
Пример:
ls / nonexistent_folder
echo $? # Выведет 2 (ошибка)


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
📞 В программировании шаблоны проектирования предлагают проверенные решения типичных задач.

Существуют три основных типа шаблонов: порождающие (creational), структурные (structural) и поведенческие (behavioral).

В этой статье Анджан объясняет порождающие шаблоны проектирования на примерах кода на Java.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Введение в Springdoc OpenAPI в Spring Boot

Хотите автоматически документировать свои REST API на Spring Boot?

Используйте Springdoc OpenAPI для генерации интерактивного Swagger UI с минимальной конфигурацией.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
#статьи
😇 Решение задачи LeetCode #57 “Insert Interval” на Java
Читать подробнее

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#Собес #bash
🤔 Как скопировать файлы в Bash?

Чтобы скопировать файл, используйте команду ср :
cp source_file destination_file

Для копирования папки используйте -r :
cp -r source_directory destination_directory


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