Java Core Flashcards Preview

Java Core > Java Core > Flashcards

Flashcards in Java Core Deck (45)
Loading flashcards...
1

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

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

2

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

int 4 byte

3

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

byte (1)
short (2)
char(2)
int (4)
long (8)
double (8)
float (4)
boolean (depend on JVM 1-4)

4

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

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

5

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

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

6

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

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

7

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

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

8

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

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

9

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

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

10

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

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

11

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

Нет, в 8ке да

12

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

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

13

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

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

14

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

Нет

15

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

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

16

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

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

17

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

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

18

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

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

19

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

public
default
protected
private

20

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

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

21

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

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

22

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

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

23

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

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

24

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

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

25

Какое отличие между абстрактным классом и интерфейсом?

АК содержит конкретные методы, АК любые модификаторы кроме private abstract, переменные любые модификаторы, наследуется только от одного класса

26

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

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

27

Можно ли создать конструктор абстрактного класса?

Да можно. Но создать объект через new нельзя.

28

Может ли класс быть abstract final?

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

29

Зачем используется ключевое слово super?

Для доступа к членам родительского класса

30

Чем отличается super() от this()?

super() - вызов конструктора родительского класса
this() - вызов перегруженного (overload) конструктора