Java Core Flashcards

1
Q

Что такое байт-код

A

Это платформенно независимые инструкции, которые являются результатом компиляции Java программы и исполняются JVM.

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

Какой размер int переменной в 32 и 64 разрядных JVM

A

int 4 byte

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

Какие типы данных есть в Java

A
byte (1)
short (2)
char(2)
int (4)
long (8)
double (8)
float (4)
boolean (depend on JVM 1-4)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Возникновение потери точности

A

int-> float, long-> float, long->double

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

Что передается по ссылке, а что по значению

A

Переменные простых типов по значению, все остальное по ссылке.

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

Что такое Autoboxing и Unboxing?

A

Это преобразование простых типов в обьектные

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

Какие блоки инициализации есть в Java

A

Статические и не статические

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

Когда вызываются блоки инициализации?

A

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

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

Для каких целей используются блоки инициализации и в каких случаях?

A

Статические блоки - используются когда нужно сложно, с дополнительной логикой инициализировать статические поля.
Не статические - используются для инициализации полей экземпляра, выполнения дополнительной логики для ВСЕХ конструкторов.

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

Можем ли обьявить класс static?

A

Да, если это вложенный класс (static nested class).

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

Можем ли мы обьявить статический метод в интерефесе?

A

Нет, в 8ке да

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

Могут ли статические методы иметь доступ к нестатическим переменным в Java?

A

Нет ошибка компиляции

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

Как получить доступ к статическим членам класса в Java?

A

Имя класса, точка имя метода или имя переменной

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

Можно ли переопределить (override) статический метод в Java?

A

Нет

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

Как сериализовать статические переменные в Java?

A

Во време сеарилизации, так же как transient переменные, статические поля не сериализуются.
После десеарилизации статические поля будут содержать значения по умолчанию.

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

Что такое статический импорт?

A

Это импорт статических методов и переменных. Доступен с 5 версии Java&
При таком импорте не нужно использовать имя класса для вызова статического метода или переменной.
import static com.abc.Employee.*

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

Чем отличаются операторы & и &&?

A

& - битовый оператор.
&& - логический оператор.
& - всегда проверяет два значение
&& - проверяет сначала левое значение, если оно false, тогда второе даже не вычисляется.

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

Какие модификаторы доступа используются для класса?

A

public и default.
public - виден все.
default - виден исключительно в одном пакете

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

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

A

public
default
protected
private

20
Q

Что такое final модификатор?

A

Для класса: запрещает наследоваться от этого класса.
Для метода: переопределять (override).
Для переменной: делает из переменной константу.

21
Q

Для чего используется оператор instanceof?

A

Для проверки типа объекта. Если класс проверяемого объекта совпадает или является наследником целевого типа возвращает true.

22
Q

Что возвращает оператор instanceof если проверяемый объект - null?

A

NPE - не будет брошен.

Вернет false.

23
Q

Какие значения могут быть использованы в switch-case операторе?

A

Строки(Java 7+), перечисления Enum, int

24
Q

Объясните использование break оператора в switch-case выражении?

A

Если не использовать break, тогда после нахождения валидного case, будут выполнены все последующие case выражения до первого break.

25
Какое отличие между абстрактным классом и интерфейсом?
АК содержит конкретные методы, АК любые модификаторы кроме private abstract, переменные любые модификаторы, наследуется только от одного класса
26
Зачем использовать абстрактные классы?
Для ситуаций, когда нужно частично реализовать обязанности класса, а часть передать наследникам, которые знают детали реализации методов для себя.
27
Можно ли создать конструктор абстрактного класса?
Да можно. Но создать объект через new нельзя.
28
Может ли класс быть abstract final?
Нет это ошибка компиляции
29
Зачем используется ключевое слово super?
Для доступа к членам родительского класса
30
Чем отличается super() от this()?
super() - вызов конструктора родительского класса | this() - вызов перегруженного (overload) конструктора
31
Как создать экземпляр перечисления?
Никак перечисления не имею public конструкторов
32
Может ли Enum наследоваться от каких-то классов?
Нет, они стандартно наследуются от класса java.lang.Enum
33
Как итерироваться по перечислениям?
Используя метод values()
34
Объясните что такое аннотации?
Это форма метаданных, которая содержит информацию о программе, но не является частью программы.
35
Как создать аннотацию?
@interface AnnotationName
36
Какие вы знаете аннотации, которые используются в JDK?
``` @Deprecated @Override @SuppressWarnings @SafeVarargs @FunctionalInterface ```
37
Что такое мета-аннотация?
``` Это аннотация для аннотаций. @Retention @Target @Inherited @Repeatable ```
38
На какие части разделено виртуальное пространство Java?
Stack, Heap, Permanent Generation, Code Cache Permanent Generation - хранятся загруженные классы. Heap - хранятся все создаваемые объекты. Code Cache - кешируется скомпилированный платформенно-зависимый код, если включена JIT-компиляция.
39
Что произошло с Java memory model в Java 8?
MaxPermSize убрали MaxMetaspaceSize добавили
40
Как можно самостоятельно удалить объект из Heap и освободить память?
Нельзя самостоятельно удалить объект из Heap, можно присвоить ему null, и тогда если нет ссылок на этот объект сборщик мусора его сам удалит.
41
Что такое сборщик мусора в Java?
Это автоматический процесс, который управляет памятью в Java.
42
С какой частью памяти работает сборщик мусора в Java
C Heap(NewGEN(Eden+Survivor) + OLD GEN)
43
Какой объект может уничтожить сборщик мусора?
На который никто не ссылается
44
Как принудительно вызвать сборщик мусора?
System.gc(); | Runtime.getRuntime().gc();
45
Что такое finalize() где он описан и зачем используется?
Этот метод объявлен в классе Object, вызывается перед уничтожением объекта, используется для освобождения ресурсов. Можно отключить вызов этого метода Runtime.getRuntime().runFinalizersOnExit(false)