Java Core Flashcards

1
Q

Что такое ООП?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Назовите основные принципы ООП

A

Инкапсуляция Наследование Полиморфизм Абстракция

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Что такое «инкапсуляция»?

A

Инкапсуляция - свойство системы скрывать детали реализации от внешнего мира, и предоставлять только методы доступа.

Цель инкапсуляции, чтобы малейшее изменение в классе не влекло за собой изменение внешнего поведения класса.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Каких двух типов бывают исключения?

A

Проверяемые и не проверяемые.

Проверяемые или checked exception проверяются компилятором и их необходимо обязательно обработать, иначе произойдет ошибка компиляции. IOException

Непроверяемые исключения или unchecked, это наследники от Runtime exception. ClassCastException, ArithmeticException.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Расскажите про иерархию исключений.

A

Общий предок для всех исключений класс Throwable.

После этого исключения делятся на Exception и Error. Главное отличие, что после Error выполнение программы восстановить невозможно.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Способы обработки исключений в Java

A

1) Пробросить вверх используя ключевое слово throws
2) Отловить в блоке catch()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Может ли быть несколько блоков catch?

A

Да может быть, но необходимо соблюдать иерархию исключений.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Зачем нужен блок finally

A

Блок, который выполняется в любом случае

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Расскажите разницу между JDK и JRE

A

JDK - Java Developer Kit - включает в себя JVM и JRE, содержит всё необходимое для разработки приложений на JAVA.

JRE - включает в себя JVM и это необходимый минимум для запуска приложений на JAVA

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Что такое servlet?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Что такое dispatcher servlet в spring

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Immutable class правила создания

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Что означает модификатор static над полем?

A

Означает, что поле относится к классу, а не к конкретному экземпляру объекта.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Расскажите о статических методах?

A

Статические методы привязаны к классу, а не к объекту. Статические методы могут оперировать только статическими членами класса.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Может ли быть статическим класс?

A

Да может, но только внутренний класс.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Назовите модификаторы доступа в Java

A

В Java существует 4 модификатора доступа:
public - виден всем;
package-private (default) - доступ на уровне пакета;
protected - доступ на уровне пакета и подклассам из других пакетов;
private - доступ внутри класса.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Ключевое слово this

A

this - это ссылка на текущий экземпляр класса
this также используется для вызова другого конструктора в конструкторе. Обязательно должен идти на 1 месте иначе ошибка компиляции.

18
Q

Для чего нужно ключевое слово super

A

super - ссылка на родительский класс

19
Q

Что делает оператор new?

A

Возвращает ссылку на созданный объект

20
Q

Цель инкапсуляции

A

Инкапсуляция позволяет объединить данные и код для обработки этих данных в одно целое.

21
Q

Что такое полиморфизм

A

Полиморфизм позволяет использовать один интерфейс для выполнения различных действий.

22
Q

Расскажите о плюсах ООП

A

Можно переиспользовать созданный раннее код
Читабельность кода
Масштабируемость

23
Q

Как передаются аргументы в метод

A

Передается копия значения и удаляется после завершения метода

24
Q

Расскажите про иерархию коллекций

A

Во главе всех коллекций стоит интерфейс Iterable -> Collection -> Set List Queue

25
Spring Dev Tools сколько загрузчиков классов существует и для чего они нужны?
Существует два загрузчика классов. Классы которые не изменились используют базовый загрузчик. А изменившиеся используют restart-class-loader
26
@ComponentScan что делает эта анотация?
Включает поиск бинов в текущем пакете.
27
Что такое IoC
принцип программирования при котором управление выполнением программы передается фреймворку, а не программисту.
28
Что такое Di
это одна из реализаций принципа IoC посредством которой созданием объекта и его зависимостей занимается фреймворк
29
IoC container что это такое
это объект который занимается созданием других объектов и внедрением в них зависимостей
30
Что такое bean?
Объект который был создан IoC контейнером
31
Что такое наследование?
Это возможность создания объектов на основе существующих
32
Почему в Java запрещено множественное наследование?
Основная проблема множественного наследования заключается в том, что оно может создавать неоднозначности в дочерних классах. Сложности, присущие множественному наследованию, наиболее отчетливо видны в проблеме алмаза. В задаче “ромб” родительский класс A имеет два различных дочерних класса B и C Теперь мы создаем новый дочерний класс D, который расширяет как класс B, так и класс C. В проблеме ромба дочерние классы B и C наследуют метод от родительского класса A. И B, и C переопределяют унаследованный метод. Но новые методы в B и C противоречат друг другу. Окончательный дочерний класс D наследует два независимых и конфликтующих метода от своих нескольких родителей B и C. Неясно, какой метод класса D следует использовать, поэтому возникает двусмысленность.
33
Что такое функциональное программирование?
34
Что такое lambda
35
Метод reduce в stream api
36
Как работают стримы под капотом?
Потоки могут выполняться параллельно для повышения производительности при работе с большими количествами входящих элементов. Параллельные потоки используют обычный ForkJoinPool доступный через вызов статического метода ForkJoinPool.commonPool(). Размер основного пула потоков может достигать 5 потоков выполнения — точное число зависит от количества доступных физических ядер процессора.
37
Когда стримы начинают выполняться?
промежуточные методы выполняются только при наличии терминального метода. То есть если терминального метода не будет то работа не произойдет
38
Что такое ForkJoinPool
39
ExecutorService
40
Что такое композиция?
Объект состоит из других объектов. Композиция - это тип отношений “принадлежит”.
41
Что такое solid?