Библиотека собеса по Java | вопросы с собеседований
Ir al canal en Telegram
Вопросы с собеседований по Java и ответы на них. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/08c603b6 Для обратной связи: @proglibrary_feeedback_bot
Mostrar más6 490
Suscriptores
+124 horas
+137 días
+1530 días
Archivo de publicaciones
❓ Параметры передаются по ссылке или по значению?
В Java всё передаётся по значению. Но важно понимать: если это объект, то по значению передаётся ссылка на объект, а не сам объект.
Это значит, что внутри метода вы можете изменять поля объекта, но не можете заменить сам объект — новая ссылка не повлияет на оригинал.
🐸 Библиотека собеса по Java
💬 Обратная связь
Какие вопросы публиковать больше?
👍🏼 — Классика с собесов, чтобы точно набить руку на ближайший
🤔 — Вопросы, которые не встречаются в каждой статье вида "N вопросов для собеса"
🔥 — Больше практики, а то одна теория
❓ sleep() vs wait()?
Thread.sleep(ms) — усыпляет поток на указанное время, не освобождая монитор. После паузы поток продолжает выполнение. Используется для временной задержки.
wait() — освобождает монитор и переводит поток в состояние ожидания, пока другой поток не вызовет notify() или notifyAll(). Используется для координации потоков в синхронизированных блоках.
Главное отличие: sleep() просто ставит поток на паузу, wait() передает управление другим потокам, освобождая ресурс.
🐸 Библиотека собеса по Java
❓ Что означает ключевое слово native?
Ключевое слово native указывает, что метод реализован на языке, отличном от Java (обычно C или C++). Такие методы используются для работы с нативными библиотеками через JNI (Java Native Interface).
Вызов native-методов позволяет взаимодействовать с системными API, работать с железом и оптимизировать производительность, но несет риски, такие как потеря переносимости и потенциальные утечки памяти.
🐸 Библиотека собеса по Java
❓ Что такое CORS-атака?
CORS-атака (Cross-Origin Resource Sharing attack) — это эксплуатация неправильных настроек CORS, позволяющая злоумышленнику получить доступ к защищённым данным с другого домена.
⚙️ Как это работает
Браузеры ограничивают выполнение запросов между разными источниками (same-origin policy). CORS (Cross-Origin Resource Sharing) позволяет ослабить эти ограничения. Если сервер неправильно настроен, злоумышленник может отправить вредоносный запрос от имени жертвы и похитить данные.
🔐 Как защититься
— Явно указывать доверенные источники в Access-Control-Allow-Origin
— Использовать строгую проверку Access-Control-Allow-Credentials
— Отключать небезопасные методы (PUT, DELETE, OPTIONS), если они не нужны
— Проверять Origin на сервере, а не только в заголовках CORS
🐸 Библиотека собеса по Java
Repost from Библиотека шарписта | C#, F#, .NET, ASP.NET
😧 58% IT-специалистов страдают: психология успеха и борьба с синдромом самозванца
Синдром самозванца — не просто модный термин, а реальная проблема, с которой сталкиваются даже опытные разработчики. Почему так происходит и как с этим бороться? Разбираемся в причинах «стандартной болезни айтишников»
➡️ Читайте в статье
Спойлер: дело не в навыках, а в психологии успеха
🐸Библиотека шарписта
🏃♀️ 40+ каналов, которые должен читать каждый разработчик
Отобрали для вас полезные и проверенные каналы для программистов — в них вы найдете все самое интересное, от технических новостей до практических гайдов.
IT Job Hub | Работа и вакансии в IT — избранные IT-вакансии
Библиотека программиста — новости из мира IT и технологий
Книги для программистов — самые годные книги по любым языкам и стекам
IT-мемы — мемы про жизу айтишника
Proglib Academy — обучение и курсы, чтобы стать топовым специалистом
Азбука айтишника — азы из мира разработки
Библиотека нейросетей — лайфхаки и промпты для разных задач, баттлы нейронок и новости из мира ИИ
Библиотека фронтендера — все о JS, React, Angular и не только
Библиотека мобильного разработчика — лайфхаки и новости из мира Swift и Kotlin
Библиотека хакера — уязвимости, атаки, бэкдоры и как от них защититься
Библиотека тестировщика — самое интересное о том, как крашить код
🦫 Go
Библиотека Go-разработчика
Библиотека задач по Go
Библиотека Go для собеса
Вакансии по Go
#️⃣ C#
Библиотека шарписта
Библиотека задач по C#
Библиотека собеса по C#
Вакансии по C#
🔧 DevOps
Библиотека devops’а
Библиотека задач по DevOps
Библиотека собеса по DevOps
Вакансии по DevOps & SRE
🐘 PHP
Библиотека пхпшника
Библиотека задач по PHP
Библиотека PHP для собеса
Вакансии по PHP, Symfony, Laravel
🐍 Python
Библиотека питониста
Библиотека Python для собеса
Библиотека задач по Python
Вакансии по питону, Django, Flask
☕️ Java
Библиотека джависта
Библиотека задач по Java
Библиотека Java для собеса
Вакансии по Java
📊 Data Science
Библиотека дата-сайентиста
Библиотека задач по Data Science
Библиотека Data Science для собеса
Вакансии по Data Science
🎮 C++
Библиотека C/C++ разработчика
Библиотека задач по C++
Библиотека C++ для собеса
Вакансии по C++
Подписывайтесь на интересные вам каналы и сохраняйте пост в закладки, чтобы не потерять 🔑
❓ Расскажите о паттерне Proxy?
Proxy (Заместитель) — это структурный паттерн, который подставляет объект-заместитель вместо реального объекта для управления доступом к нему.
🔹 Когда использовать
— Нужно контролировать доступ к объекту (например, кеширование, логирование, контроль прав).
— Создание объекта дорогое, и его инициализацию стоит отложить (Lazy Initialization).
— Требуется добавление дополнительной логики перед/после вызова методов объекта.
🔹 Типы Proxy
1. Virtual Proxy — ленивое создание объекта (например, подгрузка больших данных).
2. Protection Proxy — контроль доступа (например, права пользователей).
3. Remote Proxy — доступ к удалённому объекту (RMI, REST).
4. Logging Proxy — логирование вызовов.
⚠️ Proxy не меняет интерфейс объекта, а просто управляет доступом к нему.
🐸 Библиотека собеса по Java
❓ В чем разница между проверяемыми и непроверяемыми исключениями?
Проверяемые исключения (Checked Exceptions) — это исключения, которые компилятор требует обработать (try-catch или throws). Они наследуются от Exception, но не от RuntimeException. Примеры: IOException, SQLException. Нужны для предупреждения ошибок, которые предсказуемы, но неизбежны.
Непроверяемые исключения (Unchecked Exceptions) — это исключения, которые не требуют явной обработки, компилятор их не проверяет. Они наследуются от RuntimeException и могут возникать в любом месте программы. Примеры: NullPointerException, ArrayIndexOutOfBoundsException. Возникают из-за ошибок разработчика, как правило, а не связаны с внешними условиями.
🐸 Библиотека собеса по Java
❓ Чем отличается абстрактный класс от интерфейса?
Абстрактный класс может содержать как абстрактные, так и конкретные методы, а интерфейс до Java 8 мог содержать только абстрактные методы (с Java 8 появились default и static методы).
🔹 Наследование: класс может наследоваться только от одного абстрактного класса, но реализовать несколько интерфейсов.
🔹 Модификаторы: методы интерфейса по умолчанию public, а в абстрактном классе можно использовать разные модификаторы доступа.
🔹 Поля: интерфейс содержит только public static final (константы), а абстрактный класс может иметь обычные поля.
🔹 Когда использовать
Абстрактный класс — если есть частичная реализация или состояние.
Интерфейс — если нужна контрактная функциональность без реализации.
🐸 Библиотека собеса по Java
❓ Что такое стек-трейс?
Стек-трейс (stack trace) — это последовательность вызовов методов в стеке выполнения программы на момент возникновения ошибки. Он показывает путь, по которому код дошел до исключения, и помогает отлаживать программы.
🔹 Что даёт стек-трейс
— Помогает быстро найти причину ошибки
— Показывает путь выполнения программы
— Позволяет глубже понимать код и его логику
🐸 Библиотека собеса по Java
❓ Как работает CopyOnWriteArrayList?
CopyOnWriteArrayList — это потокобезопасная реализация List, в которой изменения происходят на копии массива.
🔹 Чтение (get, contains) выполняется без блокировок, т.к. работает с неизменяемым массивом.
🔹 Запись (add, set, remove) создает новую копию массива, где применяются изменения, а затем заменяет старый массив.
✔️ Плюсы
— Отлично подходит для сценариев, где чтение преобладает над записью.
— Не требует внешней синхронизации.
❌ Минусы
— При больших объемах данных запись дорогая по памяти и производительности.
— Итераторы работают с старой версией массива, поэтому изменения после их создания не видны (fail-safe).
🐸 Библиотека собеса по Java
❓ Какие существуют состояния потока?
Thread может находиться в одном из следующих состояний (Thread.State):
1️⃣ NEW — поток создан, но еще не запущен.
2️⃣ RUNNABLE — поток готов к выполнению, но может ожидать процессорное время.
3️⃣ BLOCKED — поток ждет освобождения монитора для входа в synchronized блок.
4️⃣ WAITING — поток ожидает сигнал без тайм-аута.
5️⃣ TIMED_WAITING — поток ожидает, но с ограничением по времени.
6️⃣ TERMINATED — поток завершил выполнение.
🐸 Библиотека собеса по Java
❓ Что такое сигнатура метода в Java?
Сигнатура метода — это его уникальная идентификация в рамках класса, включающая имя метода и список параметров (их порядок и типы).
Возвращаемый тип и модификаторы доступа не входят в сигнатуру. Именно благодаря сигнатуре JVM определяет, какие методы можно перегружать (overloading).
⚠️ Два метода с одинаковой сигнатурой в одном классе не могут существовать.
🐸 Библиотека собеса по Java
❓ Что собой представляет Сага?
Сага — это паттерн управления распределенными транзакциями, применяемый в микросервисной архитектуре. Он позволяет разбить большую транзакцию на последовательность локальных шагов, каждый из которых выполняется независимо и имеет свой компенсирующий шаг на случай ошибки.
🔹 Реализации
1. Оркестровая — централизованный координатор управляет шагами
2. Хореографическая — шаги взаимодействуют напрямую, реагируя на события друг друга
🔹 Использование
1. Разработка микросервисов
2. Разработка распределенных систем
3. Разработка приложения с бизнес-процессами с долгоживущими транзакциями
🐸 Библиотека собеса по Java
❓ Как избежать Memory Leak?
Основные причины утечек памяти — это длительно живущие ссылки, которые мешают сборщику мусора освободить ненужные объекты. Чаще всего это происходит из-за неправильного использования статических коллекций, кешей или слушателей, которые не удаляются после использования.
Также стоит следить за ресурсами вроде файлов, соединений с БД и потоков, гарантируя их закрытие через try-with-resources. Отладить проблему помогают профилировщики памяти, такие как VisualVM или Eclipse MAT, анализирующие heap dump и выявляющие утечки.
💬 С какой незаметной утечкой вы сталкивались?
🐸 Библиотека собеса по Java
🎉 Поздравляем с 8 марта
Сегодня отмечаем вклад девушек-разработчиков, аналитиков, тестировщиков, тимлидов и всех, кто влюблён в код. Без вас IT не было бы таким, каким мы его знаем. С праздником, коллеги 💐
Женщины оставили огромный след в истории IT. Если вам кажется, что программирование — это исключительно «мужская территория», взгляните, вот лишь несколько легендарных женщин:
🔹 Ада Лавлейс — автор первой компьютерной программы ещё в 19 веке.
🔹 Грейс Хоппер — создала первый компилятор и популяризировала термин «баг».
🔹 Барбара Лисков — её принцип Liskov Substitution является основой ООП, в том числе в Java.
🔹 Эдит Кларк — первая женщина-инженер, внесшая вклад в вычислительные методы в энергетике.
🔹 Маргарет Гамильтон — разработала софт для посадки «Аполлона-11» на Луну.
А это только малая часть. В статье собраны ещё больше вдохновляющих историй.
🔗 Подробнее в статье
🐸 Библиотека джависта
⚙️ Как работает API
Proglib рассказывает базу в формате рилса
🤝 💼 IT-конференции: как сходить на мероприятие и извлечь из него максимум пользы
🚀 IT-конференции — это не только про кофе-брейки и бесплатные стикеры. Это шанс завести полезные знакомства, узнать инсайдерскую информацию и найти новые карьерные возможности. Но для этого нужно не просто прийти, а правильно подготовиться и ловить важные моменты.
Как извлечь из мероприятия максимум пользы? Как сделать так, чтобы оно дало не только эмоции, но и реальные бонусы для вашей карьеры?
🔗 Подробнее в статье
🐸 Библиотека джависта
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
