Библиотека собеса по Java | вопросы с собеседований
6.35K subscribers
354 photos
4 videos
180 links
Вопросы с собеседований по Java и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/08c603b6

Работать у нас: https://job.proglib.io/

Наши каналы: https://yangx.top/proglibrary/9197
加入频道
💬 Обратная связь

Ежемесячный опрос по грейдам. Проверим, стало ли среди нас больше милордов синьоров.
Ваш грейд:

🔥 — Senior
👍🏼 — Middle
❤️ — Junior
😁 — Ещё учусь

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое JIT-компилятор?

JIT (Just-In-Time) компилятор — это компонент JVM, который компилирует байт-код в машинный код непосредственно во время выполнения программы, а не до старта приложения. Его задача — улучшить производительность, оптимизируя код, исходя из реальных условий работы программы.

JIT компилирует только те части кода, которые реально исполняются, и может применять различные оптимизации для ускорения работы приложения. Это позволяет сочетать гибкость интерпретируемого байт-кода и производительность нативного кода.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
В чём разница между IO и NIO?

🔹 IO (Input/Output)


Потоково-ориентированный подход (stream-oriented).
Блокирующий ввод-вывод (thread блокируется, пока операция не завершится).
Не поддерживает неблокирующие операции.
Нет встроенных средств буферизации, требует ручной реализации.
Подходит для простых задач, небольших файлов и данных.

🔹 NIO (New Input/Output)

Буферно-ориентированный подход (buffer-oriented).
Поддерживает неблокирующий ввод-вывод (non-blocking).
Позволяет работать с каналами (channels), буферами (buffers), селекторами (selectors).
Эффективен при работе с большим количеством одновременных подключений и крупными данными.
Производительность выше за счёт асинхронности и сокращения потоков.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
В чём разница между @Component, @Service и @Repository в Spring?

Все три аннотации делают класс Spring-бином, но различаются по семантике:

@Component: базовая аннотация, универсальный бин без конкретной роли.
@Service: указывает, что класс содержит бизнес-логику. Используется для читаемости и логической группировки.
@Repository: помечает DAO-слой (доступ к данным). Плюс Spring автоматически оборачивает методы в блок try-catch для DataAccessException.

⚠️ Разница не в функциональности, а в намерении разработчика. Spring их обрабатывает по-разному только для @Repository (например, при работе с базой данных).
Please open Telegram to view this post
VIEW IN TELEGRAM