Библиотека собеса по Java | вопросы с собеседований
6.36K subscribers
366 photos
4 videos
251 links
Вопросы с собеседований по Java и ответы на них.

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

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

Для обратной связи: @proglibrary_feeedback_bot
加入频道
Объясните различия между ConcurrentHashMap и HashMap?

HashMap не является потокобезопасной структурой, и её использование в многопоточной среде может привести к непредсказуемым результатам.

ConcurrentHashMap же специально спроектирован для безопасного параллельного доступа. Он делит структуру на сегменты или ячейки и использует блокировки только на части данных, обеспечивая высокую степень параллелизма.

С версии Java 8 применяется CAS-логика и синхронизация на уровне bin-ов для модификаций, а чтения выполняются без блокировок.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
Как устроены аннотации?

Аннотации в Java — это механизм добавления метаданных к элементам программы. С помощью @Retention указывается, на каком этапе аннотация доступна: только в исходном коде (SOURCE), в байткоде (CLASS), или в рантайме (RUNTIME). @Target определяет, к чему можно применять аннотацию: к полям, методам, параметрам, конструкторам и т. д. Эти параметры управляют поведением аннотации и тем, как фреймворки её интерпретируют, особенно во время рефлексии.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
💬 Обратная связь

Вы следите за этим каналом потому что:

🔥 — Готовлюсь к скорому собеседованию
👍🏼 — Просто поддерживаю себя в тонусе
❤️ — Использую для учёбы в целом
😁 — Другая цель (напишу в комментариях)

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
Для чего нужен enum в Java?

Enum используется для задания фиксированного набора констант. Он помогает заменить "магические строки" или числа, делая код более читаемым, безопасным и устойчивым к ошибкам.

Enum — это полноценный класс, он может содержать поля, методы и реализовывать интерфейсы. Используется, когда набор значений ограничен и заранее известен (например, дни недели, статусы заказа и т.п.).

Преимущества:

Типобезопасность (нельзя присвоить значение вне набора)
Удобство в switch-выражениях
Возможность добавлять поведение (методы)

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
В чем отличие между StackOverflowError и OutOfMemoryError?

StackOverflowError возникает, когда стек вызовов переполняется, обычно из-за глубокой или бесконечной рекурсии. Каждый вызов метода занимает место в стеке, и при превышении лимита памяти стека JVM выбрасывает StackOverflowError.

OutOfMemoryError — ошибка нехватки памяти в куче (heap). Она появляется, когда JVM не может выделить дополнительную память для объектов, потому что вся доступная heap-память исчерпана.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
😱 Вся правда об увольнениях в IT в 2025-м

Пока все молчат о том, что происходит на рынке, мы решили выяснить реальную картину. Без прикрас и корпоративного пиара.

Но для этого нам нужна ваша помощь! Мы собираем данные от разработчиков, тестировщиков, менеджеров и всех, кто работает в ИТ, чтобы создать честное исследование о:

— реальных причинах массовых увольнений
— судьбе тех, кто остался за бортом IT-рынка
— том, сколько времени сейчас нужно на поиск работы

Почему это важно? Потому что сила в правде. Зная реальную ситуацию, вы сможете лучше понимать тренды рынка и планировать карьеру.

⚡️Пройдите опрос и помогите всему сообществу: https://clc.to/yJ5krg
Что такое Spring Bean Scope?

Spring Bean Scope определяет жизненный цикл и видимость бина в контейнере.

Основные виды:

▪️ singleton (по умолчанию) — один экземпляр на весь контейнер.
▪️ prototype — новый экземпляр при каждом запросе.
▪️ request — бин живёт в рамках HTTP-запроса.
▪️ session — бин живёт в рамках HTTP-сессии.
▪️ application — бин живёт в рамках веб-приложения.
▪️ websocket — бин на время WebSocket-сессии.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
👾 AI-агенты — настоящее, о котором все говорят

На днях мы анонсировали наш новый курс AI-агенты для DS-специалистов 🎉

Это продвинутая программа для тех, кто хочет получить прикладной опыт с LLM и решать сложные задачи!

На обучении вы соберете полноценные LLM-системы с учётом особенностей доменных областей, получите hands-on навыки RAG, Crew-AI / Autogen / LangGraph и агентов.

🎓 В рамках курса вы научитесь:
— адаптировать LLM под разные предметные области и данные
— собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
— строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой

Разберете реальные кейсы и научитесь применять похожие подходы в разных доменных областях, получите фундамент для уверенного прохождения NLP system design интервью и перехода на следующий грейд.

Старт 5 июля, а при оплате до 1 июня действует дополнительная скидка и бонус — эксклюзивный лонгрид по API и ML от Proglib.

Начните осваивать тему уже сейчас 👉 https://clc.to/Cttu7A
Библиотека собеса по Java | вопросы с собеседований pinned «👾 AI-агенты — настоящее, о котором все говорят На днях мы анонсировали наш новый курс AI-агенты для DS-специалистов 🎉 Это продвинутая программа для тех, кто хочет получить прикладной опыт с LLM и решать сложные задачи! На обучении вы соберете полноценные…»
Что такое инкапсуляция?

Инкапсуляция — это механизм объединения данных (переменных) и методов, работающих с этими данными, в одном классе, с ограничением прямого доступа к внутренним компонентам объекта. В Java инкапсуляция достигается с помощью модификаторов доступа (private, protected, public), а также через предоставление публичных методов для чтения и изменения значений полей.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое наследование в Java?

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

Наследование реализуется с помощью ключевого слова extends. Подкласс может расширять или переопределять поведение суперкласса, а также добавлять новые поля и методы. Важно помнить, что в Java класс может наследоваться только от одного суперкласса.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
Последние 2 дня скидки на курс «AI-агенты для DS-специалистов»

Пока большинство дата-сайентистов строят модели и делают аналитику, рынок уже требует специалистов, которые создают автономные системы на базе ИИ-агентов.

Для этого мы подготовили специальный курс и собрали кучу дополнительного контента, который поможет погрузиться в тему еще глубже. Но чтобы получить все плюшки, успевайте до 1 июня.

🎁 Что вы получите при оплате курса до 1 июня:
— Промокод PROGLIBAIна 10 000 ₽ на курс, чтобы изучать AI-агентов еще выгоднее
— Эксклюзивный лонгрид по API и ML от Proglib

💡Что разберем на курсе «AI-агенты для DS-специалистов»:
— Реализацию памяти в цепочках langchain
— Полный пайплайн RAG-системы с оценкой качества
— Основы мультиагентных систем (MAS)
— Протокол MCP и фреймворк FastMCP

Промокод также действует на курсы «Математика для Data Science» и «Алгоритмы и структуры данных».

👉 Успейте до 1 июня: https://clc.to/Cttu7A
Что такое полиморфизм?

Полиморфизм — это способность объектов разных классов, связанных через наследование или интерфейсы, реагировать на один и тот же вызов метода по-разному.

Достигается через переопределение методов (runtime polymorphism) и перегрузку методов (compile-time polymorphism).

Основной тип полиморфизма — динамический (runtime), когда метод вызывается в зависимости от реального типа объекта во время выполнения, а не от типа ссылки.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
🚨 Что на самом деле происходит с увольнениями в ИТ

Каждый день в чатах разработчиков появляются сообщения «ищу работу», «команду сократили», «проект закрыли». Но никто не говорит о причинах и масштабах катастрофы. Мы запустили большое исследование, чтобы раскрыть правду!

🎯 Что мы выясним:
→ Реальные причины увольнений
→ Сколько времени нужно на поиск работы
→ Самые безумные истории смены работы

Понимая реальную ситуацию, мы сможем принимать взвешенные решения о карьере и не попасться на удочку HR-сказок.

👉 Пройдите опрос за 3 минуты и помогите всему сообществу: https://clc.to/yJ5krg
Что такое абстракция?

Абстракция — это принцип ООП, который позволяет выделять в программе только значимые характеристики объекта, скрывая внутренние детали реализации. В Java абстракция достигается через абстрактные классы и интерфейсы.

Абстрактный класс может содержать как реализованные, так и абстрактные (без реализации) методы, задавая общий шаблон для подклассов. Интерфейс определяет набор методов, которые класс обязан реализовать.

Абстракция упрощает взаимодействие с объектами, повышает гибкость и снижает связанность кода, концентрируя внимание на "что делает" объект, а не "как он это делает".

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

AOP (Aspect-Oriented Programming) — это парадигма программирования, которая позволяет отделить сквозную логику от основной бизнес-логики. Сквозная логика — это функционал, который повторяется во многих местах приложения, например, логирование, управление транзакциями, проверка безопасности, кэширование.

Вместо того чтобы дублировать такой код в каждом методе, AOP позволяет вынести его в отдельные модули — аспекты — и применять их автоматически с помощью pointcuts, которые определяют, где именно аспект должен сработать.

Spring AOP использует прокси-объекты, которые оборачивают целевой объект и внедряют дополнительное поведение вокруг вызовов методов. Аспекты объявляются с помощью аннотаций (@Aspect), а логика — в методах с advice (@Before, @After, @Around и т.д.).

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔍Тестовое собеседование с Java-разработчиком из Т1 Иннотех уже завтра

4 июня(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.

Как это будет:
📂 Илья Аров, старший разработчик в Т1, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Илья будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Илье

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot

Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqxQQh4R
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое технический долг?

Технический долг — это совокупность компромиссов и упрощений, сделанных в процессе разработки программного продукта для ускорения выпуска функционала. Эти решения часто приводят к ухудшению качества кода, снижению читаемости, ухудшению архитектуры и увеличению сложности поддержки. В итоге такой "долг" накапливается и требует дополнительного времени и ресурсов в будущем на исправление, рефакторинг и оптимизацию, что замедляет развитие проекта и повышает риск ошибок.

Технический долг — не всегда плохо, он бывает осознанным инструментом для достижения быстрых результатов, но без контроля и своевременного «погашения» становится серьёзной проблемой для команды и бизнеса.

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