Библиотека собеса по Java | вопросы с собеседований
رفتن به کانال در Telegram
Вопросы с собеседований по Java и ответы на них. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/08c603b6 Для обратной связи: @proglibrary_feeedback_bot
نمایش بیشتر6 488
مشترکین
+124 ساعت
+137 روز
+1530 روز
آرشیو پست ها
❓ В чем разница между параллелизмом и многопоточностью?
Многопоточность — это способность программы выполнять несколько потоков , где каждый поток может выполняться независимо, но не обязательно одновременно. Потоки могут переключаться между собой, создавая иллюзию одновременности, однако они могут работать на одном ядре процессора.
Параллелизм, с другой стороны, — это выполнение нескольких задач одновременно, обычно на разных процессорах или ядрах. В контексте параллелизма, задачи действительно выполняются одновременно.
🐸 Библиотека собеса по Java
❓ Какие бывают виды конструкторов?
Существует несколько видов конструкторов:
🔹 Конструктор по умолчанию — это конструктор без параметров, который компилятор создаёт автоматически, если не был определён ни один другой конструктор. Он инициализирует поля объекта значениями по умолчанию.
🔹 Конструктор с параметрами — конструктор, который позволяет передавать значения при создании объекта, что даёт возможность инициализировать объект с конкретными значениями.
🔹 Конструктор копирования — используется для создания нового объекта, который является копией существующего. Он инициализирует новый объект значениями из другого объекта того же класса.
🔹 Конструктор с переменным числом аргументов (varargs) — позволяет передавать переменное количество аргументов, которые обрабатываются как массив внутри конструктора.
🐸 Библиотека собеса по Java
❓ В чем разница между final, finally и finalize()?
— final используется для:
▪️ для переменных — значение нельзя изменить
▪️ для методов — нельзя переопределить
▪️ для классов — нельзя наследовать
— finally — блок, связанный с try-catch. Выполняется всегда, независимо от того, было исключение или нет. Гарантирует выполнение очистки/закрытия ресурсов.
finalize() — метод из Object, вызывается сборщиком мусора перед уничтожением объекта. Позволяет выполнить финальную очистку, но устарел и не рекомендуется к использованию (с Java 9 — deprecated).
🐸 Библиотека собеса по Java
❓ Что такое иммутабельный объект?
Иммутабельный объект — это объект, состояние которого невозможно изменить после его создания. Иммутабельность способствует безопасности потоков и предотвращению ошибок, связанных с изменениями состояния объектов. Примером может служить класс String.
🐸 Библиотека собеса по Java
💬 Обратная связь
Ежемесячный опрос по грейдам. Проверим, выросло ли число мидлов.
Ваш грейд:
🔥 — Senior
👍🏼 — Middle
❤️ — Junior
😁 — Ещё учусь
🐸 Библиотека собеса по Java
❓ Какие уровни изоляции транзакций существуют?
Существует 4 основных уровня изоляции транзакций, каждый из которых определяет степень видимости данных, изменённых в одной транзакции, для других транзакций:
— READ UNCOMMITTED (Чтение незафиксированных данных)
Наименьший уровень изоляции. Другие транзакции могут читать изменения, которые ещё не были зафиксированы (не коммитнуты). Это может привести к грязным чтениям.
— READ COMMITTED (Чтение зафиксированных данных)
Транзакция видит только те изменения, которые были зафиксированы другими транзакциями. Это предотвращает грязные чтения, но допускает неповторяемые чтения.
— REPEATABLE READ (Повторяемое чтение)
Гарантирует, что данные, считанные в рамках одной транзакции, не изменятся до её завершения (не допускаются неповторяемые чтения). Однако, могут возникать фантомные чтения.
— SERIALIZABLE (Сериализация)
Наивысший уровень изоляции. Все транзакции выполняются последовательно, как если бы они были выполнены по очереди. Это устраняет все виды аномалий, но может значительно снизить производительность.
🐸 Библиотека собеса по Java
По результатам опроса* в июне 2025 россиянам для комфортной жизни требуется зарплата не ниже 155.000 рублей в месяц. По словам опрошенных, этой суммы хватило бы и на необходимые продукты питания, и на сезонные фрукты, и даже на формирование финансовой подушки.
Так а чего ты сидишь на своей душной работе с зарплатой в 90к, без перспективы роста и премией раз в год? Листаешь мемы, мечтаешь о путешествии в Тай, но думаешь, о том, как закрыть кредиты? Отличное времяпрепровождение, конечно.
Считаешь, что достиг своего потолка? Или, может, боишься перемен? Пфф, а кто нет? Глаза боятся, руки делают! Это как в том анекдоте: “...ты лотерейный билет-то купил хоть раз в жизни?!”. Загугли, кажется, тебе этот случай покажется знакомым.
Вместо того, чтобы сидеть и заниматься самобичеванием или утешением себя любимого, поверь в себя. Не хочешь верить в себя - поверь в нас!
Мы, Kata Academy, гарантируем тебе минимальную зарплату после курса по Java-разработке от 120.000 рублей. Сразу, с первого месяца работы. С тебя - прилежно учиться, с нас - научить тебя так, чтобы ты получал не только гарантированную минималку, а хотя бы процентов на 70% больше. С работой - поможем.
Будь зайкой, запишись на консультацию, не откладывай: https://kata.pw/kgkrRy
*Опрос проводился у мамы и бабушки.
Реклама. ООО «КАТА АКАДЕМИЯ», ИНН 7802925162. Erid 2Vtzqxc2RSG
❓ В чём разница между @Controller и @RestController в Spring?
▪️ @Controller
Это стандартная аннотация для создания контроллера, который обрабатывает HTTP-запросы и возвращает представления (например, страницы HTML) или данные, которые будут обработаны и отправлены на клиентскую сторону.
▪️ @RestController
Это комбинация @Controller и @ResponseBody. То есть, она автоматически применяет аннотацию @ResponseBody ко всем методам контроллера.
Все методы, помеченные @RestController, возвращают данные непосредственно в виде JSON или XML (в зависимости от конфигурации) — без необходимости использования представлений.
🐸 Библиотека собеса по Java
❓ Что такое Spring контейнер?
Spring контейнер — это основная часть Spring Framework, отвечающая за управление жизненным циклом объектов и их зависимостями в приложении. Он использует принцип инверсии управления (IoC) для создания и управления объектами через внедрение зависимостей (DI).
🐸 Библиотека собеса по Java
❓ Когда возникает LazyInitializationException?
LazyInitializationException возникает, когда идёт обращение к лениво загружаемому полю вне активной сессии Hibernate, то есть после закрытия транзакции.
Типичный сценарий: вытянул сущность в сервисе, транзакция завершилась, а в контроллере попытался обратиться к связанному полю — и Hibernate не может лениво инициализировать связь, потому что Session уже закрыта.
🐸 Библиотека собеса по Java
🔥 Вы ещё можете застать старый добрый Proglib — с вечным доступом к курсам.
С 1 августа всё меняется: навсегда — останутся только те, кто успел купить сейчас.
-40% на все курсы. Включая обновлённый Python (кроме курса по AI-агентам)
Это не просто распродажа. Это — последняя точка входа в Proglib Academy по старым правилам.
📚 Выбрать и забрать свой курс навсегда → https://clc.to/TBtqYA
💬 Обратная связь
Какие темы использовать для постов в этом месяце больше?
🔥 — Java core
👍🏼 — Spring
👾 — Паттерны
😁 — Напишу в комменты свой вариант
🐸 Библиотека собеса по Java
❓ Расскажите про контракт equals и hashCode
Контракт между методами equals и hashCode важен для корректной работы коллекций. Основные правила контракта:
1. Рефлексивность: для любого объекта x, x.equals(x) должно возвращать true.\
2. Симметричность: если x.equals(y) возвращает true, то и y.equals(x) должно возвращать true.
3. Транзитивность: если x.equals(y) возвращает true, а y.equals(z) возвращает true, то и x.equals(z) должно возвращать true.
4. Последовательность: если два объекта равны, то они должны оставаться равными на протяжении всех вызовов equals.
5. Неравенство: если x.equals(y) возвращает false, то x.hashCode() должен быть отличным от y.hashCode().
Метод hashCode() должен быть согласован с методом equals(). Это значит, что если два объекта равны по методу equals(), то их hashCode() тоже должен быть одинаковым.
🐸 Библиотека собеса по Java
❓ Что такое сигнатура метода?
Сигнатура метода — это его имя + список параметров с их типами (в порядке объявления). Возвращаемый тип и модификаторы доступа в сигнатуру не входят.
Методы с одинаковой сигнатурой не могут сосуществовать в одном классе, будет ошибка компиляции.
🐸 Библиотека собеса по Java
❓ Что такое ссылка на метод?
Это способ передать ссылку на метод как объект, который может быть вызван позже. Это позволяет использовать методы как параметры в других методах или хранить их в коллекциях. Ссылка на метод может быть использована для вызова метода без его непосредственного вызова, часто используется в функциональном программировании.
🐸 Библиотека собеса по Java
❓ Что такое нормализация базы данных?
Это процесс организации данных в базе таким образом, чтобы минимизировать избыточность и зависимость. Главная цель — устранение дублирования данных и создание структур, которые упрощают обновления и поддерживают целостность данных.
Нормализация включает несколько этапов, называемых нормальными формами (1NF, 2NF, 3NF и т.д.), каждая из которых имеет свои требования к структуре таблиц.
🔹 1НФ
Таблица должна содержать только атомарные значения (без множественных значений в одной ячейке) и уникальные строки.
🔹 2НФ
Таблица должна быть в 1НФ, и все ненулевые атрибуты должны быть полностью зависимы от первичного ключа.
🔹 3НФ
Таблица должна быть в 2НФ, и все атрибуты должны быть не только зависимы от первичного ключа, но и напрямую, без транзитивных зависимостей (когда один атрибут зависит от другого через третий).
🐸 Библиотека собеса по Java
❓ Чем отличается абстрактный класс от интерфейса?
Абстрактный класс может содержать как реализованные, так и абстрактные методы, состояние (поля), а также конструкторы. Интерфейс до Java 8 содержал только абстрактные методы, но теперь может иметь default, static методы и даже private методы (с Java 9), но не может содержать состояние (кроме static final констант).
🔹 Ключевые отличия:
▪️ extends — только один абстрактный класс, но implements — множество интерфейсов.
▪️ Абстрактный класс позволяет инкапсулировать общую реализацию и состояние.
▪️ Интерфейс чаще используют для задания контракта, который может быть реализован классом с любой иерархией.
🐸 Библиотека собеса по Java
❓ В чем разница между sleep() и wait()?
🔹 sleep() — это метод из Thread, он просто приостанавливает выполнение текущего потока на заданное время. Он не освобождает монитор (lock) объекта.
🔹 wait() — это метод из Object, он используется для синхронизации между потоками. Поток, вызвавший wait(), освобождает монитор и ждет, пока другой поток вызовет notify() или notifyAll().
🐸 Библиотека собеса по Java
💬 Обратная связь
Ваше мнение по контенту:
🔥 — Всё супер
👍🏼 — Нормально
😁 — Есть предложения по улучшению (в комменты)
🐸 Библиотека собеса по Java
❓ Расскажите о паттерне "Стратегия"?
Стратегия — это поведенческий паттерн, который позволяет определить семейство алгоритмов, инкапсулировать каждый из них и сделать их взаимозаменяемыми. Объект делегирует выполнение алгоритма внешнему объекту — стратегии.
Применяется, когда нужно выбирать поведение на лету, не загромождая код условными конструкциями. Часто используется для реализации разных вариантов бизнес-логики без изменения вызывающего кода.
🐸 Библиотека собеса по Java
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
