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

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

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

Работать у нас: https://job.proglib.io/

Наши каналы: https://yangx.top/proglibrary/9197
加入频道
Что такое NIO в Java?

NIO (New Input/Output) — это API в Java для неблокирующего ввода-вывода, представленное в JDK 1.4. Оно предоставляет более эффективные и масштабируемые способы работы с файлами, сокетами и каналами.

▪️ Основные компоненты

— Каналы (Channels): для чтения/записи данных.
— Буферы (Buffers): для хранения данных вместо потоков.
— Селекторы (Selectors): для обработки множества каналов одним потоком.
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое 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).
Не зависит от конкретной реляционной базы данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Почему Map — это не коллекция?

Неверно: потому что так решили разработчики Java.

✔️ Правильный ответ: Map не наследует Collection, так как он оперирует парами "ключ-значение", а Collection — это набор отдельных элементов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как между собой связаны 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 внутри себя.
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое микросервисы?

Микросервисы — это архитектурный стиль, при котором приложение разбивается на небольшие, независимые сервисы. Каждый сервис отвечает за определённую бизнес-логику, имеет собственную базу данных (или логически обособленное хранилище) и взаимодействует с другими сервисами через API (обычно REST или gRPC).

🔹 Ключевые принципы

Можно обновлять и масштабировать отдельные сервисы без затрагивания всей системы.
Каждый сервис выполняет свою узкую задачу.
У сервиса свои изолированные данные, код и зависимости.
Сервисы общаются через HTTP, AMQP, Kafka и другие механизмы.
Please open Telegram to view this post
VIEW IN TELEGRAM
💬 Обратная связь

Какие типы вопросов вам нравятся больше?

🔥 - Классические вопросы, которые часто спрашивают на собеседованиях
👍🏼 - Интересные и нетривиальные вопросы
😁 - Хотелось бы побольше практики
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое ООП?

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

🔹 Основные принципы ООП:

1️⃣ Абстракциявыделение главных характеристик объекта, скрывая детали реализации
2️⃣ Инкапсуляциямеханизм ограничения доступа к внутреннему состоянию объекта и предоставления строго определённого интерфейса для работы с ним
3️⃣ Наследованиемеханизм, который позволяет одному классу получить свойства и поведение другого
4️⃣ Полиморфизмспособность объектов с одинаковым интерфейсом иметь разную реализацию
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое ссылка на метод?

Ссылка на метод (Method Reference) — это упрощённая форма лямбда-выражения, используемая для передачи существующего метода в качестве аргумента. Она позволяет ссылаться на статические и нестатические методы классов, а также на конструкторы.

🔵 Форматы ссылок

1️⃣ ClassName::staticMethod — ссылка на статический метод.
2️⃣ object::instanceMethod — ссылка на метод конкретного объекта.
3️⃣ ClassName::new — ссылка на конструктор.
Please open Telegram to view this post
VIEW IN TELEGRAM
Какие конечные методы работы со стримами вы знаете?

Конечные (терминальные) методы в Stream API выполняют вычисления и завершают работу стрима. Среди них:

▪️ collect() – собирает элементы в коллекцию или другую структуру данных.
▪️ count() – возвращает количество элементов в стриме.
▪️ forEach() – выполняет действие для каждого элемента.
▪️ reduce() – сводит элементы к единственному значению.
▪️ toArray() – преобразует стрим в массив.
▪️ min() / max() – находят минимальный или максимальный элемент.
▪️ anyMatch() / allMatch() / noneMatch() – проверяют соответствие элементов предикату.
▪️ findFirst() / findAny() – находят первый или любой элемент.
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое транзакция?

Транзакция — это логически связанная последовательность операций, выполняемая как единое целое. Она либо завершается полностью (commit), либо полностью откатывается (rollback), обеспечивая целостность данных.

В контексте баз данных и Java, транзакция гарантирует четыре свойства (ACID):

🔹 Atomicity (Атомарность) — все операции выполняются как единое целое.
🔹 Consistency (Согласованность) — данные остаются в целостном состоянии.
🔹 Isolation (Изолированность) — параллельные транзакции не мешают друг другу.
🔹 Durability (Долговечность) — изменения сохраняются даже после сбоев.
Please open Telegram to view this post
VIEW IN TELEGRAM
Какие есть режимы доступа к файлу?

Режимы доступа к файлу определяются флагами при работе с FileInputStream, FileOutputStream и RandomAccessFile. Основные режимы:

🔹 Чтение (r) — файл открывается только для чтения.
🔹 Запись (w) — файл создаётся или перезаписывается.
🔹 Дополнение (a) — данные добавляются в конец файла.
🔹 Чтение + запись (rw) — позволяет и читать, и записывать.
🔹 Чтение + запись + синхронизация (rws/rwd) — дополнительно обеспечивает синхронизацию с диском.
Please open Telegram to view this post
VIEW IN TELEGRAM
Swipe right or swipe left

Что делать, если твои мэтчи в жизни не такие точные, как твой код?

Спокойно, 14 февраля в 19:00 по МСК мы разберём, как ML анализирует speed dating и предсказывает match.

📌 Мы возьмем реальные данные со speed dating.

📌 Обучим модель, которая скажет: match или swipe left.

📌 Разберём, какие признаки реально важны (спойлер: работа в IT — не прям гарантия успеха (наши маркетологи подтверждают 😥).

💡 Приходи, если хочешь прокачать свой Python, ML и, возможно, станешь идеальной парой, как самый стильные форсы.

👉 Записаться
Что такое шаблон проектирования?

Шаблон проектирования (Design Pattern) — это типовое решение распространенной проблемы при проектировании ПО. Это не готовый код, а общее руководство по организации структуры кода, которое помогает сделать его более гибким, понятным и поддерживаемым.

🔹 Шаблоны проектирования делятся на три группы:

Порождающие – управляют созданием объектов (например, Singleton, Factory, Builder).
Структурные – определяют отношения между классами и объектами (например, Adapter, Decorator, Proxy).
Поведенческие – описывают взаимодействие между объектами (например, Observer, Strategy, Command).

Если стоит написать посты по каждому паттерну👍🏼
Please open Telegram to view this post
VIEW IN TELEGRAM
Какие методы HTTP используются в RESTful API?

▪️ GET — для получения данных.
▪️ POST — для создания ресурса.
▪️ PUT — для обновления ресурса.
▪️ PATCH — для частичного обновления ресурса.
▪️ DELETE — для удаления ресурса.
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое Spring IoC контейнер?

Spring IoC (Inversion of Control) контейнер — это центральный механизм в Spring, который управляет созданием, конфигурацией и жизненным циклом бинов.

🔹 Какие контейнеры бывают

1️⃣ BeanFactory – легковесный контейнер, подходит для простых сценариев.
2️⃣ ApplicationContext – расширенный контейнер с доп. возможностями (событийная модель, интеграция с AOP и т. д.).

Зачем нужен

Ослабляет связность кода (dependency injection).
Упрощает управление зависимостями.
Позволяет легко заменять реализации компонентов.
Облегчает тестирование за счет моков.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое модульное тестирование?

Модульное тестирование (Unit Testing) — это тестирование отдельных компонентов системы (обычно методов или классов) в изоляции от остальных частей кода. Тесты должны быть атомарными, независимыми и воспроизводимыми. Хорошее модульное тестирование покрывает не только «счастливые» сценарии, но и граничные случаи и ошибки.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как устроен HashMap под капотом?

HashMap основан на массиве бакетов (Node<K, V>[] table), где каждый бакет содержит связанный список или дерево.

🔹 Ключевые моменты

— Для хеширование ключа вызывается hashCode(), после чего вычисляется индекс массива через (n - 1) & hash, где n – размер массива.
— Если несколько ключей попадают в один бакет, создаётся связанный список. Если число элементов в бакете превысит 8, список заменяется на красно-чёрное дерево для ускорения поиска.
— Если загрузка (size / capacity) превышает 0.75, размер массива увеличивается в 2 раза, а элементы перераспределяются.
— Поиск идёт по бакету: если элементов несколько, перебирается список (или дерево), сравниваются hashCode() и equals().
— HashMap обеспечивает O(1) для операций get() / put(), но при частых коллизиях или неправильных hashCode() может деградировать до O(log n).
Please open Telegram to view this post
VIEW IN TELEGRAM
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования

🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion

#️⃣C#

Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ