Библиотека собеса по Java | вопросы с собеседований
Open in Telegram
Вопросы с собеседований по Java и ответы на них. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/08c603b6 Для обратной связи: @proglibrary_feeedback_bot
Show more6 495
Subscribers
+124 hours
+137 days
+1530 days
Posts Archive
Swipe right or swipe left
Что делать, если твои мэтчи в жизни не такие точные, как твой код?
Спокойно, 14 февраля в 19:00 по МСК мы разберём, как ML анализирует speed dating и предсказывает match.
📌 Мы возьмем реальные данные со speed dating.
📌 Обучим модель, которая скажет: match или swipe left.
📌 Разберём, какие признаки реально важны (спойлер: работа в IT — не прям гарантия успеха (наши маркетологи подтверждают 😥).
💡 Приходи, если хочешь прокачать свой Python, ML и, возможно, станешь идеальной парой, как самый стильные форсы.
👉 Записаться
🔥 Самые нужные каналы для Java разработчика, чтобы расти в доходе 💸
• Java | Вопросы собесов
• Java | Вакансии с удаленкой
• Java | LeetCode
• Java | Тесты
Подпишись, чтобы не потерять ☝️
Реклама. ИП Кивайко Алексей Викторович, ИНН 532121460552. Erid 2VtzquYBNya
❓ Какие есть режимы доступа к файлу?
Режимы доступа к файлу определяются флагами при работе с FileInputStream, FileOutputStream и RandomAccessFile. Основные режимы:
🔹 Чтение (r) — файл открывается только для чтения.
🔹 Запись (w) — файл создаётся или перезаписывается.
🔹 Дополнение (a) — данные добавляются в конец файла.
🔹 Чтение + запись (rw) — позволяет и читать, и записывать.
🔹 Чтение + запись + синхронизация (rws/rwd) — дополнительно обеспечивает синхронизацию с диском.
❓ Что такое транзакция?
Транзакция — это логически связанная последовательность операций, выполняемая как единое целое. Она либо завершается полностью (commit), либо полностью откатывается (rollback), обеспечивая целостность данных.
В контексте баз данных и Java, транзакция гарантирует четыре свойства (ACID):
🔹 Atomicity (Атомарность) — все операции выполняются как единое целое.
🔹 Consistency (Согласованность) — данные остаются в целостном состоянии.
🔹 Isolation (Изолированность) — параллельные транзакции не мешают друг другу.
🔹 Durability (Долговечность) — изменения сохраняются даже после сбоев.
Repost from Книги для программистов
Всем привет! 👋
В партнерстве со Сбером мы сделали крутой продукт — NeuroRecruiter!
Как это облегчит жизнь
NeuroRecruiter — AI-рекрутер нового поколения, который поможет тебе пройти собеседование в Сбер без стресса, выявить свои сильные стороны и подготовиться к будущим интервью.
Вот что он умеет:
🔹 Поможет выявить твои сильные и слабые стороны для карьерного роста.
🔹 Сразу после AI-интервью даст обратную связь и поможет улучшить твои навыки.
🔹 Подберет лучшие вакансии и команды, которые идеально подходят именно тебе.
🔹 Поможет получить пре-офер без лишнего стресса и переживаний.
Почему это круто
🔹 Никакого стресса — собеседования становятся полезным и даже приятным опытом.
🔹 Реальные вопросы на основе твоего резюме, чтобы ты был уверен в своих ответах.
🔹 Лучшие технические вопросы с рынка, чтобы ты был готов к любому интервью.
❗️Кроме того, ты можешь сразу откликнуться на вакансии Сбера, и рекрутеры сами выйдут на связь.
>> Попробуй NeuroRecruiter, подготовься к собеседованию и будь на шаг впереди конкурентов! 💪
👉 Узнать больше и начать
Реклама. ПАО СБЕРБАНК, ИНН 7707083893. Erid 2VtzqwutoFi
❓ Какие конечные методы работы со стримами вы знаете?
Конечные (терминальные) методы в Stream API выполняют вычисления и завершают работу стрима. Среди них:
▪️ collect() – собирает элементы в коллекцию или другую структуру данных.
▪️ count() – возвращает количество элементов в стриме.
▪️ forEach() – выполняет действие для каждого элемента.
▪️ reduce() – сводит элементы к единственному значению.
▪️ toArray() – преобразует стрим в массив.
▪️ min() / max() – находят минимальный или максимальный элемент.
▪️ anyMatch() / allMatch() / noneMatch() – проверяют соответствие элементов предикату.
▪️ findFirst() / findAny() – находят первый или любой элемент.
Уже завтра собеседование на Middle Java с разработчиком из Oracle
5 февраля (уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.
Как это будет:
1. Алексей Ушаровский ведущий Java-разработчик c опытом работы в Oracle и Сбере будет задавать реальные вопросы и задачи разработчику-добровольцу
2. Алексей будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
3. В конце можно будет задать любой вопрос Алексею
Что узнаешь на прямом эфире от ШОРТКАТ:
• Чего ждут от кандидатов на Middle позиции в Java-разработке
• Какие вопросы задают на интервью и зачем
• Как подготовиться к собесу, чтобы получить оффер
Это бесплатно? Бесплатно
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot
Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqwNi3PA
❓ Что такое ссылка на метод?
Ссылка на метод (Method Reference) — это упрощённая форма лямбда-выражения, используемая для передачи существующего метода в качестве аргумента. Она позволяет ссылаться на статические и нестатические методы классов, а также на конструкторы.
🔵 Форматы ссылок
1️⃣ ClassName::staticMethod — ссылка на статический метод.
2️⃣ object::instanceMethod — ссылка на метод конкретного объекта.
3️⃣ ClassName::new — ссылка на конструктор.
❓ Что такое ООП?
ООП (объектно-ориентированное программирование) — это парадигма программирования, которая основана на представлении программы как совокупности объектов, которые взаимодействуют между собой. Объекты имеют состояние (поля) и поведение (методы).
🔹 Основные принципы ООП:
1️⃣ Абстракция — выделение главных характеристик объекта, скрывая детали реализации
2️⃣ Инкапсуляция — механизм ограничения доступа к внутреннему состоянию объекта и предоставления строго определённого интерфейса для работы с ним
3️⃣ Наследование — механизм, который позволяет одному классу получить свойства и поведение другого
4️⃣ Полиморфизм — способность объектов с одинаковым интерфейсом иметь разную реализацию
💬 Обратная связь
Какие типы вопросов вам нравятся больше?
🔥 - Классические вопросы, которые часто спрашивают на собеседованиях
👍🏼 - Интересные и нетривиальные вопросы
😁 - Хотелось бы побольше практики
❓ Что такое микросервисы?
Микросервисы — это архитектурный стиль, при котором приложение разбивается на небольшие, независимые сервисы. Каждый сервис отвечает за определённую бизнес-логику, имеет собственную базу данных (или логически обособленное хранилище) и взаимодействует с другими сервисами через API (обычно REST или gRPC).
🔹 Ключевые принципы
— Можно обновлять и масштабировать отдельные сервисы без затрагивания всей системы.
— Каждый сервис выполняет свою узкую задачу.
— У сервиса свои изолированные данные, код и зависимости.
— Сервисы общаются через HTTP, AMQP, Kafka и другие механизмы.
❓ Как между собой связаны Iterable, Iterator и цикл for-each?
— Iterable<T> — это интерфейс, который должен реализовать класс, если он хочет поддерживать итерацию с помощью for-each. Он содержит один метод Iterator<T> iterator(). Этот метод возвращает Iterator, который и управляет обходом элементов.
— Iterator<T> — это интерфейс, который используется для последовательного перебора элементов. Он определяет методы:
boolean hasNext() — проверяет, есть ли следующий элемент
T next() — возвращает следующий элемент
void remove() — удаляет текущий элемент (необязательный)
— Цикл for-each (enhanced for loop) — это синтаксический сахар, который автоматически использует Iterator внутри себя.
❓ Почему Map — это не коллекция?
❌ Неверно: потому что так решили разработчики Java.
✔️ Правильный ответ: Map не наследует Collection, так как он оперирует парами "ключ-значение", а Collection — это набор отдельных элементов.
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
❓ Что такое JPQL?
JPQL (Java Persistence Query Language) — это язык запросов в JPA, который позволяет работать с сущностями, а не с таблицами базы данных. Он похож на SQL, но оперирует объектами и их полями, а не колонками и строками.
🔹 Пример запроса JPQL:
@Query("SELECT u FROM User u WHERE u.email = :email")
User findByEmail(@Param("email") String email);
В этом запросе User — это сущность, а u.email — поле класса, а не колонка таблицы.
🔹 Основные особенности JPQL:
— Работает с классами сущностей (@Entity), а не с таблицами.
— Поддерживает вложенные запросы, JOIN, ORDER BY, GROUP BY, HAVING.
— Позволяет использовать именованные параметры (:paramName).
— Не зависит от конкретной реляционной базы данных.❓ Что такое NIO в Java?
NIO (New Input/Output) — это API в Java для неблокирующего ввода-вывода, представленное в JDK 1.4. Оно предоставляет более эффективные и масштабируемые способы работы с файлами, сокетами и каналами.
▪️ Основные компоненты
— Каналы (Channels): для чтения/записи данных.
— Буферы (Buffers): для хранения данных вместо потоков.
— Селекторы (Selectors): для обработки множества каналов одним потоком.
❓ Какие типы связей поддерживает Hibernate?
Hibernate поддерживает следующие типы связей между сущностями, которые соответствуют отношениям в реляционных базах данных:
🔹 One-to-One (Один-к-одному)
Связь, где одна сущность связана с одной другой сущностью.
Пример: пользователь и его профиль.
🔹 One-to-Many (Один-ко-многим)
Связь, где одна сущность связана с несколькими другими.
Пример: автор и его книги.
🔹 Many-to-One (Многие-к-одному)
Обратное к One-to-Many. Несколько сущностей связаны с одной.
Пример: заказы, относящиеся к одному клиенту.
🔹 Many-to-Many (Многие-ко-многим)
Связь, где множество объектов одной сущности связано с множеством объектов другой.
Пример: студенты и курсы.
Для каждой связи Hibernate предоставляет аннотации, такие как @OneToOne, @OneToMany, @ManyToOne, и @ManyToMany.
💬 Обратная связь
Основная часть ответа прячется под спойлер. Ваше мнение об этом?
🔥 - Всё супер, интересно самому подумать
👍🏼 - Идея хорошая, но лучше чуть меньше скрывать
😁 - Хочу сразу ответ. Я что, учиться сюда пришел?
❓ Что такое Isolation в Spring?
Isolation — это параметр аннотации @Transactional, который определяет, как текущая транзакция взаимодействует с другими при конкурентном доступе к данным.
С помощью этой настройки можно управлять видимостью изменений, сделанных другими транзакциями, и защититься от ошибок, таких как dirty reads, non-repeatable reads и phantom reads.
🔹 Уровни изоляции:
— DEFAULT (по умолчанию): используется уровень изоляции, заданный в базе данных.
— READ_UNCOMMITTED: транзакция может видеть несохранённые изменения других транзакций (может возникнуть dirty read).
— READ_COMMITTED: транзакция видит только сохранённые изменения других транзакций (исключает dirty read).
— REPEATABLE_READ: данные, прочитанные транзакцией, остаются неизменными на протяжении всей её работы (исключает dirty read и non-repeatable read).
— SERIALIZABLE: самый строгий уровень, который блокирует доступ к данным для других транзакций до завершения текущей (исключает dirty read, non-repeatable read, и phantom read).
🔹 Проблемы конкурентного доступа:
— Dirty Read: одна транзакция видит несохранённые изменения другой.
— Non-Repeatable Read: данные, прочитанные в одной транзакции, могут измениться другой.
— Phantom Read: изменения набора строк, видимого в запросе, из-за вставки или удаления строк другой транзакцией.
❓ Что такое Session Scope в Spring?
Session Scope — это область видимости (scope) бина, при которой один экземпляр бина создается и используется в рамках конкретной HTTP-сессии. Для настройки используется аннотация @Scope("session").
Зачем нужен?
▪️ Полезен для хранения данных, которые должны сохраняться на протяжении всей сессии пользователя, например, данные авторизации или корзина покупок.
▪️ Упрощает управление состоянием для каждого пользователя, избегая конфликта данных между различными сессиями.
Available now! Telegram Research 2025 — the year's key insights 
