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
Q

Spring Dev Tools сколько загрузчиков классов существует и для чего они нужны?

A

Существует два загрузчика классов. Классы которые не изменились используют базовый загрузчик. А изменившиеся используют restart-class-loader

26
Q

@ComponentScan что делает эта анотация?

A

Включает поиск бинов в текущем пакете.

27
Q

Что такое IoC

A

принцип программирования при котором управление выполнением программы передается фреймворку, а не программисту.

28
Q

Что такое Di

A

это одна из реализаций принципа IoC посредством которой созданием объекта и его зависимостей занимается фреймворк

29
Q

IoC container что это такое

A

это объект который занимается созданием других объектов и внедрением в них зависимостей

30
Q

Что такое bean?

A

Объект который был создан IoC контейнером

31
Q

Что такое наследование?

A

Это возможность создания объектов на основе существующих

32
Q

Почему в Java запрещено множественное наследование?

A

Основная проблема множественного наследования заключается в том, что оно может создавать неоднозначности в дочерних классах.

Сложности, присущие множественному наследованию, наиболее отчетливо видны в проблеме алмаза. В задаче “ромб” родительский класс A имеет два различных дочерних класса B и C
Теперь мы создаем новый дочерний класс D, который расширяет как класс B, так и класс C.

В проблеме ромба дочерние классы B и C наследуют метод от родительского класса A. И B, и C переопределяют унаследованный метод. Но новые методы в B и C противоречат друг другу.

Окончательный дочерний класс D наследует два независимых и конфликтующих метода от своих нескольких родителей B и C. Неясно, какой метод класса D следует использовать, поэтому возникает двусмысленность.

33
Q

Что такое функциональное программирование?

A
34
Q

Что такое lambda

A
35
Q

Метод reduce в stream api

A
36
Q

Как работают стримы под капотом?

A

Потоки могут выполняться параллельно для повышения производительности при работе с большими количествами входящих элементов. Параллельные потоки используют обычный ForkJoinPool доступный через вызов статического метода ForkJoinPool.commonPool(). Размер основного пула потоков может достигать 5 потоков выполнения — точное число зависит от количества доступных физических ядер процессора.

37
Q

Когда стримы начинают выполняться?

A

промежуточные методы выполняются только при наличии терминального метода. То есть если терминального метода не будет то работа не произойдет

38
Q

Что такое ForkJoinPool

A
39
Q

ExecutorService

A
40
Q

Что такое композиция?

A

Объект состоит из других объектов. Композиция - это тип отношений “принадлежит”.

41
Q

Что такое solid?

A