Библиотека собеса по Java | вопросы с собеседований
رفتن به کانال در Telegram
Вопросы с собеседований по Java и ответы на них. По рекламе: @proglib_adv Учиться у нас: clc.to/3wECtA Для обратной связи: @proglibrary_feeedback_bot
نمایش بیشتر6 465
مشترکین
-224 ساعت
-77 روز
-1230 روز
آرشیو پست ها
❓ Как устроены аннотации?
Аннотации в Java — это механизм добавления метаданных к элементам программы. С помощью @Retention указывается, на каком этапе аннотация доступна: только в исходном коде (SOURCE), в байткоде (CLASS), или в рантайме (RUNTIME). @Target определяет, к чему можно применять аннотацию: к полям, методам, параметрам, конструкторам и т. д. Эти параметры управляют поведением аннотации и тем, как фреймворки её интерпретируют, особенно во время рефлексии.
🐸 Библиотека собеса по Java
❓ Объясните различия между ConcurrentHashMap и HashMap?
HashMap не является потокобезопасной структурой, и её использование в многопоточной среде может привести к непредсказуемым результатам.
ConcurrentHashMap же специально спроектирован для безопасного параллельного доступа. Он делит структуру на сегменты или ячейки и использует блокировки только на части данных, обеспечивая высокую степень параллелизма.
С версии Java 8 применяется CAS-логика и синхронизация на уровне bin-ов для модификаций, а чтения выполняются без блокировок.
🐸 Библиотека собеса по Java
❓ Объясните основные отличия между CompletableFuture и Future?
▪️ Future предоставляет базовую возможность получить результат асинхронной операции, но не позволяет легко комбинировать или цеплять действия.
▪️ CompletableFuture — расширение с поддержкой композиции, цепочек, обработки исключений, таймаутов и триггеров. Позволяет писать декларативный, неблокирующий код с методами thenApply(), thenCompose(), exceptionally().
🐸 Библиотека собеса по Java
🥵 Устали от статей, где эйчары рассказывают, как на самом деле выглядит рынок труда в ИТ?
Мы тоже! Поэтому решили узнать правду и представить ее всем айтишникам — но нам нужен ваш голос. Опрос займет 3 минуты, а пользы — вагон для всего сообщества.
Результаты этого исследования помогут понять, как специалистам искать работу в 2025-м (а компаниям — специалистов).
👉 Если вы готовы сделать свой вклад в исследование — велком: https://clc.to/VGgyNA
❓ Что такое this?
this — это ссылка на текущий объект внутри его нестатического метода или конструктора. Она используется, чтобы:
— Сослаться на поля класса, если локальные переменные или параметры метода имеют такое же имя
— Вызвать другой конструктор в том же классе
— Передать текущий объект как аргумент другому методу или объекту
🐸 Библиотека собеса по Java
❓ Где лучше хранить пароль: в String или в char[]?
Лучше использовать char[].
У String содержимое неизменяемо и хранится в пуле строк, что делает её уязвимой: пароль может долго находиться в памяти, и его нельзя явно очистить.
В случае с char[] можно перезаписать содержимое сразу после использования (например, обнулить), снижая риск компрометации данных при дампе памяти или атаке через heap dump.
🐸 Библиотека собеса по Java
❓ Что такое Docker?
Docker — это инструмент для создания, развертывания и запуска приложений в изолированных контейнерах. Контейнеры содержат всё необходимое для запуска: код, зависимости, среду выполнения и настройки. Это позволяет добиться одинакового поведения приложения в любой среде: на локальной машине, сервере или в облаке.
🐸 Библиотека собеса по Java
💬 Обратная связь
Ежемесячный опрос по грейдам. Проверим, растёт ли кол-во квалифицированных специалистов.
Ваш грейд:
🔥 — Senior
👍🏼 — Middle
❤️ — Junior
😁 — Ещё учусь
🐸 Библиотека собеса по Java
❓ Какие методы реализации принципа Инверсия управления (IoC) вы знаете?
Существует три основных метода реализации IoC:
🔹 Внедрение зависимостей (Dependency Injection, DI) — зависимости передаются объекту извне, обычно через конструктор, сеттеры или интерфейсы. Это самый распространённый и гибкий способ.
🔹 Контейнеры управления (IoC Containers) — специализированные фреймворки (например, Spring), которые сами создают и управляют жизненным циклом объектов, внедряя зависимости автоматически.
🔹 Сервис-локаторы (Service Locator) — объект запрашивает свои зависимости у централизованного реестра сервисов. Менее предпочтительный подход из-за скрытой зависимости и сложностей тестирования.
🐸 Библиотека собеса по Java
❓ Что такое volatile?
Ключевое слово volatile используется для указания, что значение переменной может быть изменено несколькими потоками. Оно обеспечивает видимость изменений переменной между потоками, предотвращая кэширование значений в отдельных потоках. Однако volatile не гарантирует атомарность операций.
🐸 Библиотека собеса по Java
JavaRocks - канал доказывающий что Java-рулит.
Собираем лучшие посты со всего русскоязычного телеграм + пишем свои собственные мнения, фишки и трюки языка.
- основы
- трюки и фишки языка
- тесты на проверку знаний
- паттерны проектирования на Java
Подпишись и изучай Java. Никакой воды. @javarocks
Реклама. Киренкина Марина Дмитриевна, ИНН 345702417736. Erid 2VtzqwMcqaU
❓ В чем разница между == и .equals()?
Оператор == сравнивает ссылки на объекты, то есть их физическое местоположение в памяти. Метод .equals() предназначен для сравнения содержимого объектов. Например, для строк рекомендуется использовать .equals(), так как строки могут быть одинаковыми по значению, но различными по ссылке.
🐸 Библиотека собеса по Java
🚨 Смешные новости про IT теперь в одном канале
Мы запустили @hahacker_news — наш новый юмористический IT-канал.
Туда будем постить лучшие шутки до 19го мая, которые вы присылали на конкурс.
👉 @hahacker_news — голосование уже идёт, переходите, читайте, угарайте и оставляйте реакции
❓ Почему Java считается платформонезависимым языком?
Java достигает платформонезависимости благодаря архитектуре "Write Once, Run Anywhere" (WORA). Исходный код компилируется в байт-код, который выполняется на Java Virtual Machine (JVM). JVM адаптирует байт-код под конкретную операционную систему, обеспечивая совместимость без необходимости перекомпиляции.
🐸 Библиотека собеса по Java
❓ Что такое Elasticsearch?
Elasticsearch — это распределённая поисковая система, построенная на основе Apache Lucene, предназначенная для хранения, поиска и анализа больших объемов данных в реальном времени. Она поддерживает текстовый поиск, аналитические запросы и хранение структурированных данных.
🐸 Библиотека собеса по Java
❓ В чем плюсы Spring Boot относительно чистого Spring?
— Spring Boot предлагает механизм автоматической настройки, который автоматически подбирает параметры конфигурации для вашего приложения в зависимости от добавленных зависимостей, снижая количество необходимого для настройки кода.
— В Spring Boot не нужно писать boilerplate-код для настройки приложения.
— Spring Boot поставляется с встраиваемыми серверами, такими как Tomcat, Jetty или Undertow, что позволяет запускать приложение как standalone Java-программу без необходимости развертывать его на внешнем сервере.
— Spring Boot облегчает настройку тестов, предоставляя встроенные механизмы для тестирования различных аспектов приложения.
— Spring Boot предлагает стандартную структуру каталогов и конфигурационных файлов, что ускоряет запуск и упрощает поддержку проекта.
— Инструменты, такие как Spring Boot CLI и Maven/Gradle плагины, позволяют легко собирать, тестировать и деплоить приложения.
— Spring Boot активно развивается, имеет обширную документацию и поддерживает множество интеграций с другими технологиями.
🐸 Библиотека собеса по Java
💬 Обратная связь
Какие темы в этом месяце использовать для постов чаще:
🔥 — Java core
👍🏼 — Spring
👾 — Паттерны
😁 — Напишу в комменты свой вариант
🐸 Библиотека собеса по Java
❓ Что такое «аутентификация» и «авторизация»?
Аутентификация — это процесс проверки личности пользователя (кто он есть). Обычно реализуется через логин и пароль, токены или биометрию. Аутентификация отвечает на вопрос "Кто ты?"
Авторизация — это процесс проверки, имеет ли пользователь доступ к определённым ресурсам или операциям (что он может делать). Авторизация — "Что тебе разрешено?"
🐸 Библиотека собеса по Java
❓ Назовите инструменты для версионирования СУБД.
Среди популярных инструментов для версионирования базы данных чаще всего используются:
▪️ Flyway — простой в настройке инструмент, основанный на SQL- или Java-скриптах, подходит для большинства проектов.
▪️ Liquibase — более гибкий, поддерживает формат XML, YAML, JSON и SQL, имеет возможность откатов, работы с changelog'ами и генерацией диффов.
▪️ Liquibase + Hibernate — можно использовать вместе для генерации changelog'ов из JPA-сущностей.
▪️ Sqitch — мощный, но менее популярный инструмент, ориентирован на работу через VCS и требует ручного управления зависимостями.
💬 Что используете на проекте?
🐸 Библиотека собеса по Java
❓ В чём разница между аннотациями @Controller и @RestController в Spring?
@RestController — это сокращение для @Controller + @ResponseBody.
Она используется, когда контроллер возвращает данные (JSON/XML), а не представления (JSP/HTML).
Кратко:
— @Controller используется для возврата HTML через шаблонизаторы (например, Thymeleaf).
— @RestController — для API, где ответ — это тело (body) с данными, а не страница.
🐸 Библиотека собеса по Java
