Что такое интерфейс Executor и зачем он нужен?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16🔥6
Функциональный интерфейс — это интерфейс, который определяет только один абстрактный метод. Это позволяет передавать поведение как значение — например, в виде лямбды или ссылки на метод.
Рассмотрим простейший пример:
@FunctionalInterface
interface Greeting {
void say(String message);
}
Greeting g = msg -> System.out.println("Привет, " + msg);
g.say("мир!");
Аннотация @FunctionalInterface не обязательна, но рекомендуема — она защищает от случайного добавления лишнего абстрактного метода.
Интерфейс может содержать сколько угодно
default-
и static
-методов и при этом оставаться функциональным, так как они не считаются абстрактными.В Java предусмотрен набор стандартных функциональных интерфейсов — в пакете
java.util.function
. Вот наиболее часто используемые:▶️ Predicate<T> — проверяет условие, возвращает true или false▶️ Function<T, R> — преобразует один тип в другой▶️ Consumer<T> — принимает значение, ничего не возвращает▶️ Supplier<T> — возвращает значение, ничего не принимает▶️ UnaryOperator<T> и BinaryOperator<T> — частные случаи Function, когда вход и выход одного типа
Пример использования Predicate:
Predicate<String> isLong = s -> s.length() > 5;
System.out.println(isLong.test("Java")); // false
Функциональные интерфейсы активно используются в Stream API, Optional, Comparator, CompletableFuture и других частях стандартной библиотеки. Это удобный способ описать поведение без лишнего кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤24👍6🔥4👨💻2
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣35❤11😁5
Что такое Redis и зачем он используется?
Ответ:
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥7❤3
Многие новички в программировании привыкают к тому, что для запуска Java-приложения достаточно создать Gradle/Maven-проект, нажать кнопку в IDE — и все работает.
Но стоит выйти за рамки стандартных сценариев, как процесс сборки превращается в “черный ящик”, а разобраться, что происходит под капотом, становится непросто.
В статье автор объясняет, как работает компиляция в Java, показывает, как вручную собрать и запустить программу, а затем шаг за шагом подводит к созданию собственной системы сборки.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤6👍1
Какими основными способами можно конфигурировать бины в Spring?
Ответ:
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17👨💻3❤2🤔1
В этом цикле статей автор делится вопросами по SQL, с которыми вы можете столкнуться на собеседовании.
В первой части — базовые темы: первичный и внешний ключ, виды соединений, подзапросы, GROUP BY, CTE и другие часто спрашиваемые концепции.
Во второй — более продвинутые вопросы: подзапросы, индексы, оптимизация запросов, хранимые процедуры, транзакции, представления, функции, денормализация, типы индексов и триггеры.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤3
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣33😁5💯4
Чем
CompletableFuture
отличается от Future
и в чём его преимущества?Ответ:
В отличие от Future, где результат приходится ждать вручную через get(), CompletableFuture позволяет задать цепочку действий, которые автоматически выполнятся после завершения задачи — без блокировки потока.
Он поддерживает композицию (например, через thenCompose, thenCombine), удобную обработку ошибок (exceptionally, handle), и может выполнять задачи в отдельных потоках (supplyAsync).
Это делает его особенно полезным для построения реактивных и параллельных программ, где важно управлять зависимостями между задачами и обрабатывать результат без лишней синхронизации.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤5
В статье обсуждаются методы ускорения сборки проектов на Maven без необходимости перехода на другие системы.
Автор рассказывает, какие подходы позволяют сократить время сборки и улучшить производительность без кардинальных изменений в проекте.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁25🤣16❤3
👍13❤8😁2
Java NIO (Non-blocking I/O) — это часть стандартной библиотеки Java, обеспечивающая работу с неблокирующими вводом-выводом, сокетами и буферами.
В статье рассматривается создание HTTP-сервера с использованием этого API, позволяющего эффективно обрабатывать множество соединений в одном потоке.
Что вы узнаете в статье?
▶️ Как настроить ServerSocketChannel и принимать соединения?▶️ Как управлять запросами через Selector в одном потоке?▶️ Как обработать HTTP-запрос и отправить ответ?▶️ В чем преимущества NIO перед блокирующими серверами?
Автор показывает ключевые приемы работы с Java NIO и объясняет, как применить их на практике.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4🔥2👨💻1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁38🤣19❤6👨💻4🔥1
Как работает механизм автоприведения типов в Java?
Ответ:
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍6🔥2
В статье разбирается, как устроены объекты
Authentication
— из чего они состоят, где хранятся и как безопасно использовать их в разных слоях приложения.Автор на практике показывает как реализовать свой фильтр для аутентификации внешнего сервиса, создать кастомный
AuthenticationToken
, передать его в SecurityContext
и открыть доступ к защищённым ресурсам.Что вы узнаете из статьи:
▶️ Что такое Authentication и как работают его компоненты: Principal, Credentials, Authorities, Details?▶️ Как получить Authentication в контроллере, сервисе и глубоко внутри бизнес-логики?▶️ Зачем нужен SecurityContextHolder и как он работает?▶️ Почему UsernamePasswordAuthenticationToken не всегда лучший выбор?▶️ Как сохранять SecurityContext между запросами с помощью SecurityContextRepository?
Продолжение, в котором Spring Security раскрывается без упрощений — с фокусом на архитектуру, реалистичные кейсы и аккуратную работу с контекстом безопасности.
🔖 Предыдущая часть — КЛИК
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤4
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣45🔥5❤4😁4
Что такое
livelock
?Ответ:
Реальный пример livelock — когда два человека встречаются в узком коридоре и каждый, пытаясь быть вежливым, отходит в сторону, и так они бесконечно двигаются из стороны в сторону.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14🔥4👨💻2👍1