Библиотека собеса по Java | вопросы с собеседований
前往频道在 Telegram
Вопросы с собеседований по Java и ответы на них. По рекламе: @tproger_sales_bot Учиться у нас: clc.to/3wECtA Для обратной связи: @proglibrary_feeedback_bot
显示更多6 374
订阅者
-324 小时
-287 天
-5730 天
帖子存档
🥵 Устали от статей, где эйчары рассказывают, как на самом деле выглядит рынок труда в ИТ?
Мы тоже! Поэтому решили узнать правду и представить ее всем айтишникам — но нам нужен ваш голос. Опрос займет 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
❓ Что такое сервлет?
Сервлет — это Java-класс, который обрабатывает HTTP-запросы и формирует HTTP-ответы в веб-приложениях. Он работает на стороне сервера в контейнере сервлетов (например, Tomcat), реализуя интерфейс javax.servlet.Servlet (чаще — через абстрактный класс HttpServlet).
Основная задача сервлета — выступать в роли контроллера в архитектуре MVC: принимать запросы от клиента, обрабатывать данные (либо делегировать бизнес-логике), и передавать результат обратно клиенту (обычно через HTML или JSON).
🐸 Библиотека собеса по Java
❓ Что значит ключевое слово var в Java?
Ключевое слово var (начиная с Java 10) позволяет компилятору самостоятельно выводить тип переменной на основе инициализатора. Это синтаксический сахар, упрощающий запись, но тип переменной по-прежнему строго статичен.
Использовать var стоит там, где тип очевиден, чтобы не терять читаемость.
⚠️ Ограничения:
— Обязательно нужно инициализировать переменную при объявлении.
— Нельзя использовать var для полей класса, параметров методов или возвращаемых значений методов.
— var не делает тип динамическим, как в скриптовых языках — это лишь сокращение, тип всё ещё строго определён во время компиляции.
🐸 Библиотека собеса по Java
🔥 Конкурс: 30 000 ₽ за самую смешную IT-новость
Напоминаем о конкурсе «Библиотеки программиста»: напишите самую смешную версию реальной новости про технологии.
👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.
🎁 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе
🏆 Как будем оценивать:
Мы выложим новости всех участников в одном из наших телеграм-каналов. Те новости, которые наберут больше всего охвата, войдут в шорт-лист. Из шорт-листа подписчики и жюри выберут победителя.
📅 Сроки: прием новостей до 11 мая включительно
Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8
Осталась неделя — ждем ваших новостей!
