es
Feedback
Библиотека собеса по Java | вопросы с собеседований

Библиотека собеса по Java | вопросы с собеседований

Ir al canal en Telegram

Вопросы с собеседований по Java и ответы на них. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/08c603b6 Для обратной связи: @proglibrary_feeedback_bot

Mostrar más
6 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

😧 58% IT-специалистов страдают: психология успеха и борьба с синдромом самозванца Синдром самозванца — не просто модный терм
😧 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 марта Сегодня отмечаем вклад девушек-разработчиков, аналитиков, тестировщиков, тимлидов и всех, кто влюблё
🎉 Поздравляем с 8 марта Сегодня отмечаем вклад девушек-разработчиков, аналитиков, тестировщиков, тимлидов и всех, кто влюблён в код. Без вас IT не было бы таким, каким мы его знаем. С праздником, коллеги 💐 Женщины оставили огромный след в истории IT. Если вам кажется, что программирование — это исключительно «мужская территория», взгляните, вот лишь несколько легендарных женщин: 🔹 Ада Лавлейс — автор первой компьютерной программы ещё в 19 веке. 🔹 Грейс Хоппер — создала первый компилятор и популяризировала термин «баг». 🔹 Барбара Лисков — её принцип Liskov Substitution является основой ООП, в том числе в Java. 🔹 Эдит Кларк — первая женщина-инженер, внесшая вклад в вычислительные методы в энергетике. 🔹 Маргарет Гамильтон — разработала софт для посадки «Аполлона-11» на Луну. А это только малая часть. В статье собраны ещё больше вдохновляющих историй. 🔗 Подробнее в статье 🐸 Библиотека джависта

⚙️ Как работает API
Proglib рассказывает базу в формате рилса

🤝 💼 IT-конференции: как сходить на мероприятие и извлечь из него максимум пользы 🚀 IT-конференции — это не только про кофе
🤝 💼 IT-конференции: как сходить на мероприятие и извлечь из него максимум пользы 🚀 IT-конференции — это не только про кофе-брейки и бесплатные стикеры. Это шанс завести полезные знакомства, узнать инсайдерскую информацию и найти новые карьерные возможности. Но для этого нужно не просто прийти, а правильно подготовиться и ловить важные моменты. Как извлечь из мероприятия максимум пользы? Как сделать так, чтобы оно дало не только эмоции, но и реальные бонусы для вашей карьеры? 🔗 Подробнее в статье 🐸 Библиотека джависта

Что происходит, если в Spring Bean с @Scope("prototype") внедрить другой Bean с @Scope("singleton")? В prototype-Bean будет всегда один и тот же экземпляр singleton-Bean, так как Singleton создаётся один раз при запуске контекста Spring и переиспользуется во всех зависимостях.