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

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

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

Для связи: @ruslan_kuyanets
Download 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
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
#полезное
😵‍💫 Все типы Map, которые стоит знать в Java

HashMap
↳ Не сохраняет порядок элементов. Не потокобезопасен. Допускает один null ключ и несколько null значений. Основан на хеш-таблице. Используется как структура общего назначения с быстрым доступом к данным.

LinkedHashMap
↳ Сохраняет порядок вставки элементов. Не потокобезопасен. Допускает null ключи и значения. Построен на основе хеш-таблицы и связанного списка. Подходит, когда важен порядок добавления элементов.

TreeMap
↳ Хранит элементы в отсортированном порядке — по натуральному порядку или через Comparator. Не потокобезопасен. Не допускает null ключей, но допускает null значения. Реализован на базе красно-черного дерева. Используется, когда нужен доступ к отсортированным ключам.

Hashtable
↳ Не гарантирует порядок. Является потокобезопасной (устаревший подход). Не допускает ни null ключей, ни null значений. Построен на хеш-таблице. Используется в легаси-коде, где требуется синхронизация.

ConcurrentHashMap
↳ Не сохраняет порядок. Потокобезопасен (современная реализация). Не допускает null ключей и значений. Построен на сегментированной хеш-таблице (в Java 7) или использует блокировку бакетов (в Java 8+). Используется для высокопроизводительного конкурентного доступа.

WeakHashMap
↳ Не сохраняет порядок. Не потокобезопасен. Допускает null ключи и значения. Использует хеш-таблицу со слабыми ссылками на ключи. Применяется для кэшей, где ключи могут быть удалены сборщиком мусора, если больше нигде не используются.

IdentityHashMap
↳ Не сохраняет порядок. Не потокобезопасен. Допускает null ключи и значения. Реализован на основе хеш-таблицы. Отличается тем, что сравнивает ключи по ссылке (==), а не по значению (equals()), что может быть полезно в специфических случаях.

EnumMap
↳ Сохраняет порядок enum-констант. Не потокобезопасен. Не допускает null ключей, но допускает null значения. Реализован на основе массива. Эффективен для отображения enum-ключей на значения.


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
3
#полезное
🥺 Профилирование с помощью 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
👍21
#полезное
🤓 Пример Spring MVC: Hello World

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

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

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


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

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😘 Singleton Pattern

Гарантирует наличие единственного экземпляра класса с ленивой инициализацией. Использует двойную проверку блокировки (double-checked locking) для обеспечения потокобезопасности

Где используется:
🟠 глобальный логгер на всё приложение
🟠 загрузка конфигурации при первом вызове
🟠 отложенное создание пула соединений
🟠 минимизируем блокировки после инициализации

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😜 Потокобезопасные неизменяемые данные с использованием Java Records:

Классы record в Java обеспечивают встроенную неизменяемость, что делает их идеальными для безопасного обмена данными между потоками. В сочетании с ExecutorService они упрощают конкурентное программирование

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #bash
🤔 Как экспортировать переменную в Bash и зачем это нужно?

Чтобы сделать переменную доступной для всех запущенных процессов, используется export :
export VAR="Hello"

Теперь эта переменная доступна в дочерних процессах, например, в другом скрипте или командной оболочке.

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

Мини-шпаргалка для новичков и тех, кто повторяет основы

🟠byte — 1 байт
Диапазон: -128 до 127

🟠short — 2 байта
Диапазон: -32,768 до 32,767

🟠int — 4 байта
Диапазон: -2,147,483,648 до 2,147,483,647

🟠long — 8 байт
Диапазон: ±9 квинтиллионов (±2^63)

🟠float — 4 байта
Точность: ~7 знаков после запятой

🟠double — 8 байт
Точность: ~15 знаков после запятой

🟠char — 2 байта
Хранит 1 Unicode-символ

🟠 boolean — ~1 бит (зависит от JVM)
Значения: true / false

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
🥺 Взаимоблокировка (deadlock) в Java

Взаимоблокировка возникает, когда два потока удерживают блокировки и одновременно ожидают освобождения друг друга, что приводит к зависанию программы. Такая ситуация труднообнаружима и становится кошмаром в масштабных приложениях

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #bash
🤔 Как объявить переменную в Bash?

B Bash переменная объявляется без ключевого слова, просто через = без пробелов:
VAR=value

Значение переменной можно получить через $VAR .

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😬 Java остаётся одним из самых популярных языков уже больше двух десятилетий.

Банковские системы, e-commerce платформы, Android-приложения и многое другое, всё это можно писать на Java.

В этом курсе ты изучишь основы Java: от переменных и циклов до объектно-ориентированного программирования (OOP).

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👋 Продвинутый уровень конкуррентности, неблокирующие структуры данных

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👋 Универсальная обёртка для API-ответов

Дженерики позволяют возвращать типобезопасные и переиспользуемые форматы ответов. Вот как создать обобщённую обёртку ApiResponse<T> для любого payload-а API.

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

Bash (Bourne Again Shell) - это командный интерпретатор, используемый в Unix и Linux. Он позволяет выполнять команды, автоматизировать задачи с помощью скриптов и управлять системой. Bash поддерживает переменные, управляющие конструкции (циклы, условия) и обработку командного вывода.

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