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

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

رفتن به کانال در Telegram

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

نمایش بیشتر
6 487
مشترکین
+524 ساعت
+147 روز
+1430 روز
آرشیو پست ها
🤔 Как ускорить браузер Закрой все вкладки со словами «MacBook», «купить ноутбук», «ноут в рассрочку». Потому что у нас есть
🤔 Как ускорить браузер Закрой все вкладки со словами «MacBook», «купить ноутбук», «ноут в рассрочку». Потому что у нас есть решение лучше. 🔥 Proglib разыгрывает MacBook Pro 14. Формула простая: покупаешь любой курс до 15 ноября → учишься 2 недели → пишешь куратору #розыгрыш Пока у тебя открыто 147 вкладок с ценами, кто-то уже прокачивает скилы и может забрать приз. 👉🏻 Выбрать курс для участия

💬 Обратная связь Моё отношение к постам за прошлый месяц: 🔥 — Интересно, полезно 🤔 — Нейтрально 😁 — Не понравилось, напишу что 🐸 Библиотека собеса по Java

✔️ Java-тест: Retry с exponential backoff Напишите метод для production-кода 👇 📦 Задание Реализуйте метод, который выполняет операцию с повторными попытками:
public <T> T retry(Supplier<T> operation, 
                   int maxAttempts, 
                   long initialDelayMs) {
    // Ваш код здесь
    // При неудаче - повторить с задержкой
    // Задержка удваивается: 100ms -> 200ms -> 400ms
    // После maxAttempts выбросить исключение
}
Требования — Первая попытка без задержки — Каждая следующая: задержка *= 2 — После maxAttempts пробросить последнее исключение — Если успех - вернуть результат Ставьте → 🔥, если нравится формат. Если нет → 🤔 💬 Решения под спойлер. Сравним, какое будет лучше. 🐸 Библиотека собеса по Java #practise

Расскажите о проблеме N+1? Проблема N+1 возникает при работе с ORM, когда для получения N сущностей с их связанными данными выполняется 1 запрос для основной коллекции и затем N дополнительных запросов для каждой связи. Если у нас 100 пользователей, выполнится 101 запрос вместо одного. Решения: 🔹 JOIN FETCH в JPQL:
@Query("SELECT u FROM User u JOIN FETCH u.orders")
List<User> findAllWithOrders();
🔹 EntityGraph:
@EntityGraph(attributePaths = {"orders"})
List<User> findAll();
🔹 Batch Size (не решает проблему, но группирует запросы):
@BatchSize(size = 10)
private List<Order> orders;
Выбор решения зависит от конкретной ситуации: для единичных запросов подходит JOIN FETCH, для повторяющихся паттернов - EntityGraph или Batch Size. 🐸 Библиотека собеса по Java #spring

🎲 Знаешь, что хуже всего на собесе? Когда задают простой вопрос, а ты не можешь ответить. 🤔 Это ощущение, когда понимаешь:
🎲 Знаешь, что хуже всего на собесе? Когда задают простой вопрос, а ты не можешь ответить. 🤔 Это ощущение, когда понимаешь:
«Блин, я это знаю... вроде... сейчас...»
От «я знаю...» до «сейчас объясню!» всего один курс.Алгоритмы и структуры данных — от Big O до задач криптографии. ✅ Python для разработчиков — пиши чистый и эффективный код. ✅ Архитектуры и шаблоны — строй системы, которые масштабируются. ✅ Основы IT — всё необходимое для входа в профессию. Выбирай любой и забирай со скидкой 40% только до конца октября. 🔗 Выбрать курс

Как работают лямбды? Лямбда — это краткая форма записи анонимного класса, реализующего функциональный интерфейс (т.е. интерфейс с единственным абстрактным методом, например Runnable или Function). При компиляции лямбда не создает отдельный класс, как раньше анонимные классы. Вместо этого компилятор использует механизм invokedynamic, добавленный в Java 8, чтобы создать ссылку на реализацию метода — функциональный объект формируется динамически во время выполнения. Кратко: Лямбды — это ссылки на поведение, а не объекты. Они компилируются через invokedynamic и создают реализацию функционального интерфейса во время выполнения. 🐸 Библиотека собеса по Java #core

💬 Обратная связь Ежемесячный опрос по грейдам. Растём вместе 💪🏻 Ваш грейд: 🔥 — Senior 👍🏼 — Middle ❤️ — Junior 😁 — Ещё учусь 🐸 Библиотека собеса по Java

💻 В эпоху LLM код пишется легче, но… Чтобы получать крутые офферы и построить устойчивую карьеру, нужно иметь развитое архит
💻 В эпоху LLM код пишется легче, но… Чтобы получать крутые офферы и построить устойчивую карьеру, нужно иметь развитое архитектурное мышление и инженерную культуру. — Как перейти от поверхностного знания языка к экспертному уровню? — Как развивать инженерную культуру: от базовых принципов к senior-практикам? — Как использовать ИИ-инструменты для роста, а не деградации? — Как разобраться в агентских системах и освоить современные подходы к архитектуре? … Ответы на все эти вопросы узнаешь в бесплатном прямом эфире.
🗣 Спикер — Дмитрий Березницкий
Сhief Technical Officer с 20+ лет опыта в IT. — Занимался разработкой решений в сферах безопасности, блокчейна, финтеха и электронной коммерции, сфокусированных на американском рынке. — В роли архитектора и руководителя обеспечивал стратегическое направление команд и успешное внедрение международных проектов. — Провел более 1 000 собеседований.
⏰ Встречаемся сегодня в 19:00 мск. Ссылка на вебинар открывается сразу после регистрации 👉 https://kata.pw/g7wWOk

Что такое "Thread Pool"? Thread Pool (пул потоков) — это коллекция предварительно созданных потоков, которые могут быть использованы для выполнения задач. Основная цель — минимизация накладных расходов на создание и уничтожение потоков. Вместо того чтобы создавать новый поток для каждой задачи, задачи передаются уже существующим потокам в пуле. Это улучшает производительность и позволяет более эффективно управлять ресурсами, особенно при высокой нагрузке. 🐸 Библиотека собеса по Java #concurrency

Расскажите о паттерне Фасад? Паттерн Фасад относится к структурным шаблонам проектирования. Его цель — скрыть сложность подсистемы за простым интерфейсом. Он предоставляет единую точку доступа к набору классов, упрощая взаимодействие клиента с системой. Проще говоря, Фасад — это «фронт-дверь» сложной системы. Вместо того чтобы вызывать десятки методов из разных классов, клиент обращается к одному объекту, который внутри вызывает всё нужное. Плюсы: ✔️ Упрощает использование сложной системы. ✔️ Изолирует клиента от изменений в подсистемах. ✔️ Повышает читаемость и поддержку кода. Минусы: ⚠️ Может стать God объектом, если разрастается слишком сильно. 🐸 Библиотека собеса по Java #patterns

Что такое Fork/Join Pool? ForkJoinPool — это специальный пул потоков, оптимизированный для выполнения множества мелких параллельных задач, которые можно рекурсивно делить (fork) и объединять (join). ▪️ Как работает:Задача делится на подзадачи (метод fork()), каждая выполняется в отдельном потоке.Когда подзадачи завершаются, результаты объединяются (join()). — В отличие от обычного ThreadPoolExecutor, каждый поток имеет собственную двустороннюю очередь задач и использует механизм work stealing: если поток простаивает, он "ворует" задачи из очередей других потоков. ▪️ Когда применять: — Для задач, которые можно разбить на независимые части (например, обработка массивов, вычисления, рекурсивные алгоритмы). — При необходимости максимально загрузить CPU (по числу ядер). 🐸 Библиотека собеса по Java #concurrency

🧠 Математика — движок всего, что мы пишем Без неё не было бы сортировок, шифрования, графов и даже того самого if с вероятно
🧠 Математика — движок всего, что мы пишем Без неё не было бы сортировок, шифрования, графов и даже того самого if с вероятностью успеха в A/B-тесте. Но главное, математика понятна, если объяснить её на языке разработки. 📘 Курс «Математика для Data Science»: — от основ до реальных задач из собесов; — линейная алгебра, статистика, теория вероятностей; — визуализации, практика и живые уроки; — поддержка менторов и комьюнити в чате. 🎓 За 2 месяца вы перестанете просто использовать библиотеки и начнёте понимать, как они работают. 🗓️ Старт → 6 ноября 👉 Записаться на курс

✔️ Java-тест: Concurrency edition Проверим, как вы дружите с многопоточностью 👇 У вас есть метод doWork(), который выполняет тяжёлую операцию (например, чтение и обработку файла). 📦 Задание: Нужно запустить ровно 5 потоков, каждый из которых вызывает doWork(), и дождаться завершения всех перед продолжением выполнение основного потока. Разрешено использовать любые инструменты. Ставьте → 🔥, если нравится формат. Если нет → 🤔 💬 Решения под спойлер. Сравним, какое будет лучше. 🐸 Библиотека собеса по Java #practise

В чём разница между Lambdas и Anonymous Classes? И лямбды, и анонимные классы позволяют создавать "одноразовые" реализации, но лямбды — это более короткий и функциональный способ записать код, реализующий функциональный интерфейс (т.е. интерфейс с одним абстрактным методом). Ключевые отличия: 🧩 Синтаксис: лямбда короче и читабельнее. ⚡️ Производительность: лямбды компилируются как invoke-dynamic и не создают новый класс → меньше накладных расходов. 🧠 this: внутри лямбды this указывает на внешний объект, а в анонимном классе — на экземпляр самого анонимного класса. 🎯 Назначение: анонимные классы подходят, если нужно переопределить несколько методов или иметь состояние. Лямбды — только для одного метода. 🐸 Библиотека собеса по Java #core

В чем разница между == и .equals() в Java? == сравнивает ссылки на объекты (т.е. проверяет, указывают ли две переменные на один и тот же объект в памяти). .equals() — это метод, предназначенный для сравнения содержимого объектов. По умолчанию в классе Object он работает как ==, но многие классы (например, String, Integer, List) переопределяют его, чтобы сравнивать значения. Также можно самостоятельно переопределить его. 🐸 Библиотека собеса по Java #core

🔥 Новый курс «Математика для Data Science» Записывайтесь до 19.10 и получите бонус-курс «Школьная математика» для быстрого о
🔥 Новый курс «Математика для Data Science» Записывайтесь до 19.10 и получите бонус-курс «Школьная математика» для быстрого освежения знаний! 🚀 🧠 Эксперты-спикеры на курсе: ▫️ Диана Миронидис — преподаватель ВШЭ, автор Яндекс Практикума; ▫️ Ксения Кондаурова — преподаватель Центрального Университета (Т-Банк); ▫️ Маргарита Бурова — академический руководитель программ Wildberries & Russ. 👉🏻 Не упустите шанс улучшить свои навыки

Что такое маркерный интерфейс? Маркерный интерфейс — это интерфейс, который не содержит методов, но служит для маркировки классов с определённой целью. Его использование позволяет указывать, что объект принадлежит к определённому типу или должен иметь особое поведение, не реализуя дополнительные методы. 🐸 Библиотека собеса по Java #core

😵‍💫 Устал от бесконечной подготовки к собесам? Тогда залетай к нам, есть задачка попроще. Пройди в нашем боте мини-тест по
😵‍💫 Устал от бесконечной подготовки к собесам? Тогда залетай к нам, есть задачка попроще. Пройди в нашем боте мини-тест по математике и узнай, готов ли ты к Data Science или стоит что-то подтянуть. 📱 Перейти в бота

Что такое Lazy Initialization? Lazy Initialization — это подход, при котором объект создаётся только в момент первого обращения к нему, а не заранее при инициализации класса или приложения. Такой подход экономит ресурсы (память, CPU) и ускоряет старт программы, особенно если объект может так и не понадобиться. 🐸 Библиотека собеса по Java #spring

💡 Задача с собесеседования Недавно в одном известном всем банке кандидату была предложена задача: Есть клиент, который за ме
💡 Задача с собесеседования Недавно в одном известном всем банке кандидату была предложена задача:
Есть клиент, который за месяц делает 1000 транзакций. Нужно посчитать вероятность того, что среди них окажется хотя бы одна дублирующаяся сумма, если каждая сумма округляется до 2 знаков после запятой.
Вероятности, распределения, матожидание, градиенты — всё это может всплыть на интервью, и даже в продовых задачах. 🎓 Proglib запускает экспресс-курс «Математика для Data Science» — для тех, кто хочет закрыть эти пробелы и понять математику быстро, качественно и без боли. 🔍 На курсе вас ждет: — линейная алгебра, анализ, теория вероятности и статистика; — градиенты, матрицы и экстремумы функций; — математики и алгоритмы машинного обучения; — много практики. 📅 Старт: 6 ноября ⏰ Формат: 10 вебинаров и 3 практических проекта 💬 Поддержка: менторы + Telegram-чат 💰 Стоимость: 37 000 ₽ (есть рассрочка) 🔗 Узнать больше и записаться