ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 01.12.2023

Просмотров: 411

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Какие шесть видов блокировок (lock) описаны в спецификации JPA (или какие есть значения у enum LockModeType в JPA)?.............................................................................136
Какие два вида кэшей (cache) вы знаете в JPA и для чего они нужны?...........................137
Как работать с кешем 2 уровня?..........................................................................................138
Что такое JPQL/HQL и чем он отличается от SQL?...........................................................139
Что такое Criteria API и для чего он используется?...........................................................139
Расскажите про проблему N+1 Select и путях ее решения...............................................140
Что такое EntityGraph? Как и для чего их использовать?..................................................140
Мемоизация...........................................................................................................................141
Spring..........................................................................................................................................142
Что такое инверсия контроля (IoC) и внедрение зависимостей (DI)? Как эти принципы реализованы в Spring?........................................................................................142
Что такое IoC контейнер?.....................................................................................................142
Расскажите про ApplicationContext и BeanFactory, чем отличаются? В каких случаях что стоит использовать?.........................................................................................142
Расскажите про аннотацию @Bean?...................................................................................143
Расскажите про аннотацию @Component?.........................................................................143
Чем отличаются аннотации @Bean и @Component?.........................................................143
Расскажите про аннотации @Service и @Repository. Чем они отличаются?..................143
Расскажите про аннотацию @Autowired............................................................................143
Расскажите про аннотацию @Resource..............................................................................144
Расскажите про аннотацию @Inject....................................................................................145
Расскажите про аннотацию @Lookup.................................................................................145
Можно ли вставить бин в статическое поле? Почему?.....................................................145
Расскажите про аннотации @Primary и @Qualifier...........................................................146
Как заинжектить примитив?................................................................................................146
Как заинжектить коллекцию?..............................................................................................147
Расскажите про аннотацию @Conditional..........................................................................147
Расскажите про аннотацию @Profile..................................................................................147
Расскажите про жизненный цикл бина, аннотации @PostConstruct и @PreDestroy(). . .148
Расскажите про скоупы бинов? Какой скоуп используется по умолчанию? Что изменилось в Spring 5?.........................................................................................................152
Расскажите про аннотацию @ComponentScan...................................................................152
Как спринг работает с транзакциями? Расскажите про аннотацию @Transactional......153
Что произойдет, если один метод с @Transactional вызовет другой метод с
@Transactional?......................................................................................................................156
Что произойдет, если один метод БЕЗ @Transactional вызовет другой метод с
@Transactional?......................................................................................................................156
Будет ли транзакция отменена, если будет брошено исключение, которое указано в контракте метода?.................................................................................................................156
Расскажите про аннотации @Controller и @RestController. Чем они отличаются?
Как вернуть ответ со своим статусом (например 213)?.....................................................156
Что такое ViewResolver?.......................................................................................................157
Чем отличаются Model, ModelMap и ModelAndView?......................................................157
Расскажите про паттерн Front Controller, как он реализован в Spring?............................157
Расскажите про паттерн MVC, как он реализован в Spring?............................................158
Что такое АОП? Как реализовано в спринге?....................................................................160
В чем разница между Filters, Listeners and Interceptors?....................................................161
Можно ли передать в запросе один и тот же параметр несколько раз? Как?..................162
Как работает Spring Security? Как сконфигурировать? Какие интерфейсы используются?.......................................................................................................................162


Что такое SpringBoot? Какие у него преимущества? Как конфигурируется?
Подробно................................................................................................................................163
Расскажите про нововведения Spring 5...............................................................................165
1   2   3   4   5   6   7   8   9   ...   25

Паттерны...................................................................................................................................166
Что такое «шаблон проектирования»?................................................................................166
Назовите основные характеристики шаблонов..................................................................166
Назовите три основные группы паттернов.........................................................................166
Расскажите про паттерн «Одиночка» (Singleton)...............................................................166
Расскажите про паттерн «Строитель» (Builder).................................................................168
Расскажите про паттерн «Фабричный метод» (Factory Method)......................................168
Расскажите про паттерн «Абстрактная фабрика» (Abstract Factory)................................168
Расскажите про паттерн «Прототип» (Prototype)...............................................................169
Расскажите про паттерн «Адаптер» (Adapter)....................................................................169
Расскажите про паттерн «Декоратор» (Decorator).............................................................169
Расскажите про паттерн «Заместитель» (Proxy)................................................................170
Расскажите про паттерн «Итератор» (Iterator)...................................................................170
Расскажите про паттерн «Шаблонный метод» (Template Method)...................................170
Расскажите про паттерн «Цепочка обязанностей» (Chain of Responsibility)...................171
Какие паттерны используются в Spring Framework?.........................................................171
Какие паттерны используются в Hibernate?.......................................................................171
Шаблоны GRASP: Low Coupling (низкая связанность) и High Cohesion (высокая сплоченность)........................................................................................................................171
Расскажите про паттерн Saga...............................................................................................172
Алгоритмы................................................................................................................................173
Что такое Big O? Как происходит оценка асимптотической сложности алгоритмов?...173
Что такое рекурсия? Сравните преимущества и недостатки итеративных и рекурсивных алгоритмов (с примерами)............................................................................174
Что такое жадные алгоритмы? Приведите пример............................................................175
Расскажите про пузырьковую сортировку..........................................................................175
Расскажите про быструю сортировку.................................................................................175
Расскажите про сортировку слиянием................................................................................175
Расскажите про бинарное дерево........................................................................................176
Расскажите про красно-черное дерево................................................................................176
Расскажите про линейный и бинарный поиск....................................................................176

Расскажите про очередь и стек............................................................................................177
Сравните сложность вставки, удаления, поиска и доступа по индексу в ArrayList и LinkedList............................................................................................................................178

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

объектно-ориентированное программирование использует в качестве основных логических конструктивных элементов объекты, а не алгоритмы;

каждый объект является экземпляром определенного класса;

классы образуют иерархии.
Программа считается объектно-ориентированной, только если выполнены все три указанных требования. В частности, программирование, не использующее наследование, называется не объектно-ориентированным, а программированием с помощью абстрактных типов данных.
Согласно парадигме ООП программа состоит из объектов, обменивающихся сообщениями.
Объекты могут обладать состоянием, единственный способ изменить состояние объекта –
послать ему сообщение, в ответ на которое объект может изменить собственное состояние.
Какие преимущества у ООП?
Легко читается – не нужно выискивать в коде функции и выяснять, за что они отвечают.
Быстро пишется – можно быстро создать сущности, с которыми должна работать программа.
Простота реализации большого функционала – т. к. на написание кода уходит меньше времени, можно гораздо быстрее создать приложение с множеством возможностей.
Какие недостатки у ООП?
Потребление памяти – объекты потребляют больше оперативной памяти, чем примитивные типы данных.
Снижается производительность –многие вещи технически реализованы иначе, поэтому они используют больше ресурсов.
Сложно начать –парадигма ООП сложнее функционального программирования, поэтому на старт уходит больше времени.
Принципы ООП (наследование, инкапсуляция, полиморфизм, абстракция)
Инкапсуляция – это свойство системы, позволяющее объединить данные и методы,
работающие с ними, в классе и скрыть детали реализации от пользователя, открыв только то, что необходимо при последующем использовании.
Цель инкапсуляции – уйти от зависимости внешнего интерфейса класса (то, что могут использовать другие классы) от реализации. Чтобы малейшее изменение в классе не влекло за собой изменение внешнего поведения класса.
Наследование – это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью.


Класс, от которого производится наследование, называется предком, базовым или родительским. Новый класс – потомком, наследником или производным классом.
Полиморфизм – это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
Преимуществом полиморфизма является то, что он помогает снижать сложность программ,
разрешая использование одного и того же интерфейса для задания единого набора действий. Выбор же конкретного действия, в зависимости от ситуации, возлагается на компилятор языка программирования. Отсюда следует ключевая особенность полиморфизма – использование объекта производного класса вместо объекта базового
(потомки могут изменять родительское поведение, даже если обращение к ним будет производиться по ссылке родительского типа).
Абстрагирование – это способ выделить набор общих характеристик объекта, исключая из рассмотрения частные и незначимые. Соответственно, абстракция – это набор всех таких характеристик.
Класс, объект, интерфейс
Класс – это способ описания сущности, определяющий состояние и поведение, зависящее от этого состояния, а также правила для взаимодействия с данной сущностью (контракт).
С точки зрения программирования класс можно рассматривать как набор данных (полей,
атрибутов, членов класса) и функций для работы с ними (методов).
С точки зрения структуры программы класс является сложным типом данных.
Объект (экземпляр) – это отдельный представитель класса, имеющий конкретное состояние и поведение, полностью определяемое классом. Каждый объект имеет конкретные значения атрибутов и методы, работающие с этими значениями на основе правил, заданных в классе.
Интерфейс – это набор методов класса, доступных для использования. Интерфейсом класса будет являться набор всех его публичных методов в совокупности с набором публичных атрибутов. По сути, интерфейс специфицирует класс, четко определяя все возможные действия над ним.
Ассоциация, агрегация, композиция
Ассоциация обозначает связь между объектами. Композиция и агрегация – частные случаи ассоциации «часть-целое».
Агрегация предполагает, что объекты связаны взаимоотношением «part-of» (часть).
Композиция более строгий вариант агрегации. Дополнительно к требованию «part-of»
накладывается условие, что экземпляр «части» может входить только в одно целое (или никуда не входить), в то время как в случае агрегации экземпляр «части» может входить в несколько целых.
Является – «is a», имеет – «has a»
«Является» подразумевает наследование, «имеет» подразумевает ассоциацию (агрегацию или композицию).