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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#полезное
🤯 JLine TerminalBuilder.build()

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 Ставить @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
#Собес #bash
🤔 Как посчитать количество строк в файле?

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

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

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

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

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

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

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
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
#Собес #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
#полезное
🛞 Типы массивов в 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
Что такое SSO (Single Sign-On)?

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👋 Инструменты повышения продуктивности и качества кода в 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
#Собес #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
#статьи
😇 Решение задачи LeetCode #57 “Insert Interval” на Java
Читать подробнее

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

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

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


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🥺 Профилирование с помощью Spring Boot Actuator

Spring Boot Actuator предоставляет эндпоинты, такие как /actuator/metrics, /actuator/health и /actuator/heapdump.

В связке с Micrometer, Prometheus и Grafana позволяет визуализировать производительность вашего приложения.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 Пример Spring MVC: Hello World

Простое веб-приложение, в котором контроллер обрабатывает запрос, добавляет данные в модель и отображает их в представлении (view).

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #bash
🤔 Разница между одинарными и двойными кавычками в Bash

Одинарные кавычки ' ' предотвращают интерпретацию переменных и команд, а двойные " " позволяют их подставлять.
VAR="world"
echo 'Hello $VAR' # Выведет: Hello $VAR
echo "Hello $VAR" # Выведет: Hello world


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😎 CompletableFuture - современный подход к асинхронному программированию в Java.

CompletableFuture
в Java позволяет выполнять неблокирующие асинхронные задачи с помощью чистого, цепочечного API.
Это помогает повысить производительность в реальных приложениях, таких как API и микросервисы.

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