Библиотека собеса по Java | вопросы с собеседований
6.28K subscribers
378 photos
7 videos
352 links
Вопросы с собеседований по Java и ответы на них.

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

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

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
📅 Сегодня в 19:00 МСК — бесплатный вебинар с Марией Жаровой.

Тема: «Введение в ML: как спрогнозировать стоимость недвижимости».

🔹 Разберём задачу прогноза стоимости недвижимости.
🔹 Покажем пошагово, как собрать первую модель.
🔹 Получите готовые скрипты для старта.

Не зайдёшь — будешь ещё год делать вид, что понимаешь графики в чужих презентациях.

👉 Регистрируйтесь
В чем разница между JRE, JVM и JDK?

▪️ JVM (Java Virtual Machine) — это виртуальная машина, которая выполняет байт-код. Она абстрагирует операционную систему и аппаратное обеспечение, предоставляя платформонезависимую среду для выполнения программ.

▪️ JRE (Java Runtime Environment) — это комплект программного обеспечения, включающий JVM и стандартные библиотеки Java, которые нужны для запуска Java-программ.

▪️ JDK (Java Development Kit) — это полный набор инструментов для разработки Java-программ. Он включает в себя JRE и дополнительные инструменты, такие как компилятор javac, отладчик, и другие утилиты для разработки.

Таким образом, JDK включает в себя JRE, а JRE включает в себя JVM.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍7🔥21
👀 Задача с собеса: Потокобезопасный LRU-кэш с TTL (middle)

Отдохнули и хватит😁
Интересная задачка с реального собеседования:

Компания хочет снизить нагрузку на БД и внешние API. Реализуйте in-memory кэш, который:

— хранит не более N элементов (LRU-политика вытеснения)
— истекает срок действия записей по TTL
— потокобезопасен и работает за O(1) на get/put


▪️ Условия

1. put(k, v) кладёт значение с TTL (единый для экземпляра).
2. get(k) возвращает значение или null, если пары нет или истёк TTL.
3. При переполнении удаляется «наименее недавно использованный» элемент.
4. Решение должно быть неблокирующим по чтению или, как минимум, с короткими критическими секциями.
5. Допустимо ленивое удаление устаревших записей (на чтении/записи).

💡 Ключевые моменты:

— Выбор структуры: LinkedHashMap с accessOrder=true даёт LRU «из коробки».
— TTL: храните expireAt на элемент; чистите лениво и/или периодически.
— Потоки: короткие секции под ReentrantReadWriteLock (или один ReentrantLock) вокруг критичных операций.
— Амортизация O(1): не делайте полных проходов по карте на каждом вызове.

💬 Возможная реализация в комментариях. Пишите также ваши реализация и способы оптимизации.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍41
Что вы делали, когда сталкивались с дедлоком?

Первое и самое главное: звать тимлида.

✔️ Анализ ситуации с помощью дампов потоков, выявление цепочек взаимных блокировок. Проверка порядка захвата ресурсов и зон синхронизации. Использование высокоуровневых инструментов вместо вложенных synchronized. При необходимости — переход на неблокирующие структуры данных и минимизация областей блокировок. Основной принцип — единый порядок доступа к ресурсам и сокращение времени удержания блокировок.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
😁11👍4🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
1🥱1
🏃‍♀️ Новый поток курса — собери своих AI-агентов

7 октября стартует второй поток курса «AI-агенты для DS-специалистов».
За 5 недель вы научитесь собирать агентов, которые уже сейчас будут помогать бизнесу.

В кружке выше Максим Шаланкин, наш преподаватель, рассказывает подробнее — включай, чтобы не пропустить.

👉 Записаться на курс
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Так, владелец макбука. Хватит позировать в кофейне.

Настоящее портфолио — это не стикеры на крышке, а проект с чистым кодом, README и рабочей демкой.

Не знаешь, как такой собрать? Научим. Наш курс «ML для старта в Data Science» — это пошаговый гайд к проекту, за который не стыдно.

ОСТАЛАСЬ НЕДЕЛЯ, чтобы забрать его по старой цене в 44.000 ₽. С 1 сентября — всё.

🎁 И да, при покупке курса ML до 1 сентябрякурс по Python получаешь бесплатно.

👉 Апгрейд от «вайба» до «оффера» тут
🌚1
В чём разница между throw и throws?

throw используется внутри метода для генерации (выброса) конкретного исключения. После него всегда идёт объект исключения.

throws указывается в сигнатуре метода и сообщает, какие проверяемые исключения (checked) этот метод может выбросить.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81🔥1
📢 Какой сетап идеально подойдёт для разработки AI-агента?

Голосуйте за свой вариант и пишите в комментариях, в каком режиме вы реально кодите.

❤️ — 1
👍 — 2
⚡️ — 3
👏 — 4
🔥 — 5
🎉 — 6
😁 — 7
😍 — 8
🤩 — 9

Какой бы сетап ни был, без AI-агентов в 2025 всё равно далеко не уедешь.

👉 Научим, как строить агентов, которые кодят с тобой
🎉11😍6👍5🔥32
Что такое Spring контейнер?

Spring контейнер — это основной компонент фреймворка Spring, который отвечает за управление жизненным циклом объектов (или бинов). Контейнер создаёт, конфигурирует и управляет зависимостями между объектами, а также реализует инъекцию зависимостей (DI), что упрощает разработку, улучшает тестируемость и поддерживаемость кода.

Он также управляет аспектами транзакций и безопасности.

Основной принцип Spring контейнера — это инверсия управления (IoC), при которой ответственность за создание объектов и управление их состоянием перекладывается на контейнер, а не на код разработчика.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84🔥1
Назовите все методы класса Object?

Класс Object — это базовый класс для всех классов в Java. Он содержит следующие методы:

🔹 public final Class<?> getClass() – возвращает объект Class для текущего объекта.
🔹 public int hashCode() – возвращает хэш-код объекта.
🔹 public boolean equals(Object obj) – сравнивает объекты на равенство.
🔹 protected Object clone() – создает копию объекта (глубокое/поверхностное копирование зависит от реализации).
🔹 public String toString() – строковое представление объекта.
🔹 public final void notify() – пробуждает один поток, ожидающий монитор объекта.
🔹 public final void notifyAll() – пробуждает все потоки, ожидающие монитор объекта.
🔹 public final void wait() – заставляет поток ждать, пока его не разбудят через notify/notifyAll.
🔹 public final void wait(long timeout) – ждет указанное время или до уведомления.
🔹 public final void wait(long timeout, int nanos) – более точная версия ожидания.
🔹 protected void finalize() – вызывается перед удалением объекта сборщиком мусора (deprecated с Java 9).

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91🔥1
Осталось 48 часов!

Обратный отсчёт пошёл: только до воскресенья 23:59 можно купить курс «AI-агенты для DS-специалистов» и начать учиться уже с 15 сентября.

⚡️ Это ваши +3 недели форы, чтобы спокойно разобраться в самых сложных темах и прийти к первому занятию 7 октября уже подготовленным.

👉 Забрать место
🤓 «Сначала выучу Python идеально, а потом пойду в ML»

Звучит логично, но на практике — ловушка.
Python огромный: фреймворки, библиотеки, нюансы синтаксиса. Учить «всё сразу» можно бесконечно.

В итоге — месяцы зубрёжки, а до ML руки так и не доходят.

На старте достаточно баз: типы данных, циклы, функции, работа с библиотеками. Всё остальное лучше подтягивать в процессе решения ML-задач.

⚠️ До 1 сентября курсы можно забрать по старым ценам. Это последние выходные, когда:
ML идёт за 34 000 вместо 44 000 ₽ + Python в подарок,
два в одном: оплатите курс по математике и получите второй доступ в подарок,
— и главное: можно купить все курсы до подорожания.

👉 ML для старта в Data Science

А для будущих Data Scientist’ов у нас ещё:
Базовые модели ML и приложения
Математика для Data Science
AI-агенты для DS-специалистов (2-й поток скоро)
Что такое ООП?

ООП — это парадигма программирования, в основе которой лежат объекты: сущности, объединяющие данные (поля) и поведение (методы).

Её ключевые принципы:

▪️ Инкапсуляция — скрытие внутреннего состояния объекта.
▪️ Наследование — переиспользование кода через иерархию классов.
▪️ Полиморфизм — единый интерфейс для разных реализаций.
▪️ Абстракция — выделение важных свойств объекта, игнорируя детали.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4👏2😢1
ПОСЛЕДНИЙ ДЕНЬ
КУРСЫ ПОДОРОЖАЮТ ЗАВТРА‼️

ML за 34к вместо 44к + Python в подарок
Математика → второй доступ в подарок
— Ранний доступ к AI-агентам с 15 сентября
— И МОЖНО УСПЕТЬ КУПИТЬ ВСЁ ДО ПОДОРОЖАНИЯ

👉 Proglib Academy
💬 Обратная связь

Подписаны ли вы ещё на другие каналы с вопросами с собесов?

❤️ — Нет, только на этот.
😁 — Да, подписан ещё на другие.

Для тех, кто подписан на несколько, оставьте ваше мнение, что можно добавить в наш канал, чтобы сделать контент интереснее.

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