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

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

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

Для обратной связи: @proglibrary_feeedback_bot
加入频道
💬 Обратная связь

Какие темы в этом месяце использовать для постов чаще:

🔥 — Java core
👍🏼 — Spring
👾 — Паттерны
😁 — Напишу в комменты свой вариант

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
В чем плюсы 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
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое Elasticsearch?

Elasticsearch — это распределённая поисковая система, построенная на основе Apache Lucene, предназначенная для хранения, поиска и анализа больших объемов данных в реальном времени. Она поддерживает текстовый поиск, аналитические запросы и хранение структурированных данных.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
Почему Java считается платформонезависимым языком?

Java достигает платформонезависимости благодаря архитектуре "Write Once, Run Anywhere" (WORA). Исходный код компилируется в байт-код, который выполняется на Java Virtual Machine (JVM). JVM адаптирует байт-код под конкретную операционную систему, обеспечивая совместимость без необходимости перекомпиляции.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
🚨 Смешные новости про IT теперь в одном канале

Мы запустили @hahacker_news — наш новый юмористический IT-канал.

Туда будем постить лучшие шутки до 19го мая, которые вы присылали на конкурс.

👉 @hahacker_news — голосование уже идёт, переходите, читайте, угарайте и оставляйте реакции
В чем разница между == и .equals()?

Оператор == сравнивает ссылки на объекты, то есть их физическое местоположение в памяти. Метод .equals() предназначен для сравнения содержимого объектов. Например, для строк рекомендуется использовать .equals(), так как строки могут быть одинаковыми по значению, но различными по ссылке.

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

Ключевое слово volatile используется для указания, что значение переменной может быть изменено несколькими потоками. Оно обеспечивает видимость изменений переменной между потоками, предотвращая кэширование значений в отдельных потоках. Однако volatile не гарантирует атомарность операций.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
Какие методы реализации принципа Инверсия управления (IoC) вы знаете?

Существует три основных метода реализации IoC:

🔹 Внедрение зависимостей (Dependency Injection, DI) — зависимости передаются объекту извне, обычно через конструктор, сеттеры или интерфейсы. Это самый распространённый и гибкий способ.

🔹 Контейнеры управления (IoC Containers) — специализированные фреймворки (например, Spring), которые сами создают и управляют жизненным циклом объектов, внедряя зависимости автоматически.

🔹 Сервис-локаторы (Service Locator) — объект запрашивает свои зависимости у централизованного реестра сервисов. Менее предпочтительный подход из-за скрытой зависимости и сложностей тестирования.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
💬 Обратная связь

Ежемесячный опрос по грейдам. Проверим, растёт ли кол-во квалифицированных специалистов.
Ваш грейд:

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

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

Docker — это инструмент для создания, развертывания и запуска приложений в изолированных контейнерах. Контейнеры содержат всё необходимое для запуска: код, зависимости, среду выполнения и настройки. Это позволяет добиться одинакового поведения приложения в любой среде: на локальной машине, сервере или в облаке.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
Где лучше хранить пароль: в String или в char[]?

Лучше использовать char[].
У String содержимое неизменяемо и хранится в пуле строк, что делает её уязвимой: пароль может долго находиться в памяти, и его нельзя явно очистить.
В случае с char[] можно перезаписать содержимое сразу после использования (например, обнулить), снижая риск компрометации данных при дампе памяти или атаке через heap dump.

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

this — это ссылка на текущий объект внутри его нестатического метода или конструктора. Она используется, чтобы:

— Сослаться на поля класса, если локальные переменные или параметры метода имеют такое же имя
— Вызвать другой конструктор в том же классе
— Передать текущий объект как аргумент другому методу или объекту

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
🥵 Устали от статей, где эйчары рассказывают, как на самом деле выглядит рынок труда в ИТ?

Мы тоже! Поэтому решили узнать правду и представить ее всем айтишникам — но нам нужен ваш голос. Опрос займет 3 минуты, а пользы — вагон для всего сообщества.

Результаты этого исследования помогут понять, как специалистам искать работу в 2025-м (а компаниям — специалистов).

👉 Если вы готовы сделать свой вклад в исследование — велком: https://clc.to/VGgyNA
Объясните основные отличия между CompletableFuture и Future?

▪️ Future предоставляет базовую возможность получить результат асинхронной операции, но не позволяет легко комбинировать или цеплять действия.
▪️ CompletableFuture — расширение с поддержкой композиции, цепочек, обработки исключений, таймаутов и триггеров. Позволяет писать декларативный, неблокирующий код с методами thenApply(), thenCompose(), exceptionally().

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
Объясните различия между ConcurrentHashMap и HashMap?

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

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

С версии Java 8 применяется CAS-логика и синхронизация на уровне bin-ов для модификаций, а чтения выполняются без блокировок.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
Как устроены аннотации?

Аннотации в Java — это механизм добавления метаданных к элементам программы. С помощью @Retention указывается, на каком этапе аннотация доступна: только в исходном коде (SOURCE), в байткоде (CLASS), или в рантайме (RUNTIME). @Target определяет, к чему можно применять аннотацию: к полям, методам, параметрам, конструкторам и т. д. Эти параметры управляют поведением аннотации и тем, как фреймворки её интерпретируют, особенно во время рефлексии.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
💬 Обратная связь

Вы следите за этим каналом потому что:

🔥 — Готовлюсь к скорому собеседованию
👍🏼 — Просто поддерживаю себя в тонусе
❤️ — Использую для учёбы в целом
😁 — Другая цель (напишу в комментариях)

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
Для чего нужен enum в Java?

Enum используется для задания фиксированного набора констант. Он помогает заменить "магические строки" или числа, делая код более читаемым, безопасным и устойчивым к ошибкам.

Enum — это полноценный класс, он может содержать поля, методы и реализовывать интерфейсы. Используется, когда набор значений ограничен и заранее известен (например, дни недели, статусы заказа и т.п.).

Преимущества:

Типобезопасность (нельзя присвоить значение вне набора)
Удобство в switch-выражениях
Возможность добавлять поведение (методы)

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
В чем отличие между StackOverflowError и OutOfMemoryError?

StackOverflowError возникает, когда стек вызовов переполняется, обычно из-за глубокой или бесконечной рекурсии. Каждый вызов метода занимает место в стеке, и при превышении лимита памяти стека JVM выбрасывает StackOverflowError.

OutOfMemoryError — ошибка нехватки памяти в куче (heap). Она появляется, когда JVM не может выделить дополнительную память для объектов, потому что вся доступная heap-память исчерпана.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
😱 Вся правда об увольнениях в IT в 2025-м

Пока все молчат о том, что происходит на рынке, мы решили выяснить реальную картину. Без прикрас и корпоративного пиара.

Но для этого нам нужна ваша помощь! Мы собираем данные от разработчиков, тестировщиков, менеджеров и всех, кто работает в ИТ, чтобы создать честное исследование о:

— реальных причинах массовых увольнений
— судьбе тех, кто остался за бортом IT-рынка
— том, сколько времени сейчас нужно на поиск работы

Почему это важно? Потому что сила в правде. Зная реальную ситуацию, вы сможете лучше понимать тренды рынка и планировать карьеру.

⚡️Пройдите опрос и помогите всему сообществу: https://clc.to/yJ5krg