Библиотека собеса по Java | вопросы с собеседований
Kanalga Telegram’da o‘tish
Вопросы с собеседований по Java и ответы на них. По рекламе: @tproger_sales_bot Учиться у нас: clc.to/3wECtA Для обратной связи: @proglibrary_feeedback_bot
Ko'proq ko'rsatish6 373
Obunachilar
-324 soatlar
-267 kun
-5430 kun
Postlar arxiv
👀 Джуны, мидлы, сеньоры — кто есть кто
Proglib рассказывает базу в формате рилса
🤔 Основы математики в Machine Learning / Deep Learning
🗓 6 марта приглашаем вас на прямой эфир, где мы подробно разберем ряд Тейлора, собственные векторы и другие ключевые понятия в ML.
(ссылка)
🌟 Спикер: *Мария Горденко* – Старший преподаватель ФКН НИУ ВШЭ, НИТУ МИСИС, аспирант департамента анализа данных и искусственного интеллекта ФКН НИУ ВШЭ, а также преподаватель на курсе Алгоритмы и структуры данных в proglib academy.
Место работы: Инженер-программист, ведущий эксперт НИУ ВШЭ, цифровой ассистент и цифровой консультант НИУ ВШЭ.
😮 На вебинаре вы узнаете:
🔵 Теорию вероятностей: обсудим случайные величины, вероятность, математическое ожидание и дисперсию.
🔵 Линейную алгебру: изучим векторы, матрицы, собственные векторы и собственные значения.
🔵 Математический анализ: разберем производные и разложение функций в ряд Тейлора.
🔵 Практику: применим полученные знания на реальных кейсах из области Machine Learning и Deep Learning.
🎯 Почему это важно?
Понимание математических основ помогает глубже разобраться в работающих под капотом алгоритмах ML/DL и эффективно применять их на практике.
👉 Присоединяйтесь к нам и совершенствуйте свои навыки в машинном обучении!
📌 Регистрация по ссылке: https://proglib.io/w/38262362
❓ Какие проблемы решает enum?
1️⃣ Безопасность и читаемость кода — заменяет строковые или числовые константы, делая код понятнее и исключая ошибки из-за опечаток.
2️⃣ Типобезопасность — исключает возможность присвоения некорректного значения.
3️⃣ Группировка связанных констант — позволяет логически объединять значения, относящиеся к одной категории.
4️⃣ Дополнительные возможности — может содержать методы и поля, расширяя функциональность.
5️⃣ Перформанс и память — использует внутреннюю кешированную таблицу значений, что ускоряет сравнение и доступ к значениям.
❓ Что такое Docker?
Docker — это платформа для контейнеризации, которая позволяет упаковывать приложение и его зависимости в изолированные контейнеры.
✔️ Основные преимущества
▪️ Позволяет запускать приложение в любом окружении без зависимости от хост-системы.
▪️ Облегчает развертывание и масштабирование сервисов.
▪️ Упрощает CI/CD за счёт предсказуемости окружения.
✔️ Ключевые концепции
▪️ Образ (Image) — шаблон для создания контейнера.
▪️ Контейнер (Container) — запущенный экземпляр образа.
▪️ Dockerfile — файл с инструкциями по сборке образа.
▪️ Docker Compose — инструмент для управления многоконтейнерными приложениями.
Найти работу теперь так же просто, как заказать такси 🚗
Представь, что поиск работы стал таким же удобным, как вызов такси.
1️⃣ Регистрируешься за 2 минуты
2️⃣ Проходишь AI-интервью в любое время
3️⃣ Получаешь персональные вакансии и пре-офер от Сбера
💡 Без стресса, без ожидания, без звонков "через недельку" – просто бери и делай!
🔗 Попробуй прямо сейчас! 👉 https://clc.to/GkOTTA
Реклама. ПАО СБЕРБАНК, ИНН 7707083893. Erid 2VtzqxUqFAv
❓ Что такое база данных?
База данных (БД) — это организованное хранилище данных, предназначенное для удобного доступа, управления и обработки информации.
🔹 Основные виды БД
▪️ Реляционные (SQL) — данные хранятся в таблицах, используются SQL-запросы (например, PostgreSQL, MySQL).
▪️ Нереляционные (NoSQL) — данные могут храниться в виде документов, графов, пар "ключ-значение" и т. д. (например, MongoDB, Redis).
❓ В чем разница между map() и flatMap()?
Оба метода используются для трансформации данных в Stream, но с ключевыми отличиями:
▪️ map(Function<T, R>) применяет функцию к каждому элементу потока и возвращает поток с преобразованными элементами (Stream<R>).
▪️ flatMap(Function<T, Stream<R>>) делает то же самое, но ожидает, что функция вернет Stream<R>, а затем "выпрямляет" вложенные потоки в один Stream<R>.
📌 Пример:
List<String> words = List.of("Hello", "World");
// map(): превращает каждое слово в список символов
List<List<Character>> mapped = words.stream()
.map(word -> word.chars()
.mapToObj(c -> (char) c)
.toList())
.toList();
// flatMap(): превращает каждое слово в поток символов и "сплющивает" их в один поток
List<Character> flatMapped = words.stream()
.flatMap(word -> word.chars()
.mapToObj(c -> (char) c))
.toList();
System.out.println(mapped); // [[H, e, l, l, o], [W, o, r, l, d]]
System.out.println(flatMapped); // [H, e, l, l, o, W, o, r, l, d]Repost from Библиотека C/C++ разработчика | cpp, boost, qt
Документация PostgreSQL — лучший источник знаний о СУБД. Но она отличается огромным объемом: не каждый разработчик осилит 3024 страницы формата А4.
Опытный бэкендер составил список самых важных сведений, которые ему самому хотелось бы знать перед началом работы с PostgreSQL. Эта подборка сэкономит вам несколько недель изучения документации, и скорее всего, пригодится для работы с другими СУБД.
👉 Список самого важного
📊 Как себя чувствует IT-рынок в 2025 году?
Друзья, запускаем важное исследование рынка труда в IT!
Нам очень важно понять:
• Как изменились зарплаты
• Что происходит с наймом
• Есть ли сокращения или рост
🔐 Опрос полностью анонимный
⏱️ Займёт всего 3-5 минут
📈 Результаты опубликуем в подробной статье
Ваши ответы помогут составить реальную картину происходящего в индустрии.
🔗 Пройти опрос
Совет на 2025-й — будьте осторожнее с выбором работы.
IT-рынок штормит: массовые сокращения, заморозка найма, снижение зарплат. В такое время особенно важно отличать стоящие офферы от проходных.
Знакомо? Открываешь вакансию, а там: «Ищем middle-разработчика с опытом 10 лет, знанием 15 языков и готовностью работать за печеньки. Офис в Челябинске, релокация за ваш счет» 🤦♂️
Чтобы не тратить время на сотни сомнительных предложений, подпишитесь на IT Job Hub. Там мы отфильтровываем весь мусор и публикуем только избранные вакансии в стабильных компаниях:
— Зарплаты на уровне рынка, а не на уровне голодного студента
— Никаких «мы молодая и дружная семья» — только адекватные условия
— Проверенные работодатели, а не стартапы из сомнительных сфер
Вакансии удобно разбиты по тегам: #python #java #go #data #devops и по другим направлениям. Без воды и лишнего спама — только проверенные вакансии в знакомых компаниях.
Подписывайтесь, если не хотите упустить работу мечты → @proglib_jobs
❓ Что такое переопределение методов?
Переопределение метода (Method Overriding) — это процесс, при котором подкласс предоставляет свою реализацию метода, уже определённого в родительском классе.
🔹 Основные правила
— Метод в подклассе должен иметь ту же сигнатуру.
— Должен быть такой же или более широкий уровень доступа.
— В подклассе можно ослабить ограничения исключений, но нельзя добавить новые.
— Если метод в родительском классе объявлен как final, static или private, его нельзя переопределить.
👉 Интенсив «Архитектуры и шаблоны проектирования» для middle и senior-разработчиков
Проверьте свои знания, ответив на 8 вопросов – https://proglib.io/w/5f150300
🧐 Кому подойдет?
Разработчикам, которые знают любой объектно-ориентированный язык программирования и хотят углубиться в архитектурные паттерны.
🎮 Как проходит обучение?
В течение всего интенсива вы будете создавать игру «Звездные войны» и применять ключевые архитектурные паттерны. В процессе изучите:
– Как строить гибкую архитектуру, которая не замедляет разработку
– Как применять IoC-контейнеры и писать модульные тесты
– Как использовать SOLID за пределами ООП
– Как внедрять CI/CD и снижать технический долг
👉 Подробная программа обучения
А по промокоду MIDDLE до 28 февраля вы получите дополнительную скидку на обучение
❓ Чем отличается агрегация от композиции?
Композиция и агрегация — это разновидности отношений «часть-целое» в объектно-ориентированном программировании.
🔹 Композиция — жесткая связь. Если уничтожается целый объект, то уничтожаются и его части.
Пример: Двигатель — это часть автомобиля. Если удалить машину, двигатель тоже исчезнет.
🔹 Агрегация — более слабая связь. Объект-часть может существовать независимо от объекта-целого.
Пример: Университет и студенты. Университет может закрыться, но студенты продолжат существовать.
❓ В чем разница между передачей параметров по ссылке и по значению?
При передаче параметров по значению (pass-by-value) в метод передается копия переменной, а оригинальное значение остается неизменным.
При передаче параметров по ссылке (pass-by-reference) передается сам адрес объекта в памяти, а не его копия. Это позволяет изменять объект внутри метода.
Однако в Java все параметры передаются по значению (pass-by-value), но важно понимать разницу для примитивов и объектов:
▪️ Для примитивных типов передается копия значения, и изменения внутри метода не влияют на оригинальную переменную.
▪️ Для объектов передается копия ссылки на объект, но сама ссылка неизменяема. Это значит, что можно изменить состояние объекта внутри метода, но нельзя заменить сам объект.
Добро пожаловать на Виртуальную Стажировку Java
https://stepik.org/course/210937/promo
Это уникальный проект в котором вас ждет мир коммерческой разработки на Java. Вы под руководством опытного ментора реализуете проект от начала до деплоя на прод. В процессе работы над проектом вы познакомитесь и изучите современные технологии и библиотеки, применяемые для создания современных Java Backend приложений.
Технологии и инструменты, используемые в проекте:
- VCS, Git, GitHub
- Build Tool Gradle
- Spring Framework, Spring Boot
- Design patterns: IoC, Builder, DTO, Factory, Strategy, etc.
- HTTP, REST, WEB MVC
- SQL, MySQL, H2, JDBC, ORM, JPA, Hibernate, Liquibase
- JUnit, Mockito
- Lombok, Immutable Objects
- Logging, metrics
- JAR, WAR, Java Web Server, Apache Tomcat
- JSON, XML
- Containers, Docker
- Message Broker, RabbitMQ
- и многое другое.
Главной целью этого проекта является прививание инженерного мышления. Мы хотим, чтобы вы стали не просто кодерами, а настоящими инженерами, способными с помощью IT-технологий эффективно решать реальные задачи бизнеса.
Основные темы проекта:
- Архитектура приложения
- Дизайн паттерны
- Работа с требованиями
- Надёжность
- Тестирование
- Развертывание
- Observability (логи, метрики)
- Domain Driven Design (DDD)
- Clean code, refactoring
- Работа с базой данных
- Интеграция приложений
- и многое другое.
Завершив работу над этим проектом, вы получите опыт коммерческой разработки, знания, подкрепленные практикой, и уникальный кейс в свое портфолио.
По всем вопросам пишите автору и ментору проекта:
- Телеграмм (@javagurulv)
- Email (javagurulv@gmail.com)
Телеграмм группа проекта Виртуальная Стажировка Java:
https://t.me/+mvRhG9YECTlkZjQ0
❗Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
❓ Что такое класс, объект и интерфейс?
▪️ Класс — это шаблон (схема), описывающий свойства (поля) и поведение (методы) объектов. Например, Car — класс, описывающий машину.
▪️ Объект — это экземпляр класса, созданный в памяти с помощью оператора new. У него есть конкретные значения свойств. Например, Car myCar = new Car(123, "Red"); — конкретный объект машины с конкретными свойствами.
▪️Интерфейс — это контракт, задающий, какие методы должен реализовать класс, если он этот интерфейс имплементирует. Например, List — интерфейс, а ArrayList — класс, который его реализует.
Что спрашивают на собеседовании у Middle Java-разработчика?
Уже завтра, 19 февраля в 19:00 мск — бесплатное открытое собеседование в прямом эфире!
Интервьюер Илья Аров с опытом работы в крупных банках задаст реальные вопросы разработчику-добровольцу и разберёт его ответы. В конце — время вопросов ментору из зала.
Что узнаешь на эфире:
✅ Какие вопросы задают на собеседованиях и зачем
✅ Как подготовиться, чтобы получить достойный оффер
✅ Чего ждут от кандидатов на Middle Java
Запишись на эфир в боте ШОРТКАТ → @shortcut_sh_bot
Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqvyUnW9
❓ Что такое Big O?
Big O — это асимптотическая нотация, описывающая, как изменяются временные или пространственные затраты алгоритма при росте входных данных. Она показывает верхнюю границу роста (худший случай), позволяя сравнивать эффективность алгоритмов независимо от оборудования или реализации.
🔹 Основные виды сложности
— O(1) — постоянное время, не зависит от размера данных.
— O(log n) — логарифмическое время, быстро сокращает размер задачи (например, бинарный поиск).
— O(n) — линейное время, пропорционально количеству элементов.
— O(n log n) — логлинейное, часто встречается в эффективных сортировках (например, Merge Sort).
— O(n²) — квадратичное, характерно для вложенных циклов (например, сортировка пузырьком).
💬 Обратная связь
Понятно, что грейды — это всё от лукавого относительно, но всё же, к какому грейду вы ближе?
🔥 — Senior
👍🏼 — Middle
❤️ — Junior
😁 — Ещё учусь
👾 — Эта разработка мне уже понятна. Я ищу только одного — покоя, умиротворения и вот этой гармонии, от слияния с бесконечно вечным
