Java Learning
19.3K subscribers
1.59K photos
1 video
3 files
963 links
№ 5079899194

Обучающий канал по Java

Ссылка для друга - https://t.iss.one/+ZEYYht6-46w5MDM6

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
Что выведет код сверху?
Anonymous Quiz
21%
10
42%
15
5%
20
32%
Error
👍45😱12👎5🔥1
#Вопросы_с_собеседования

Что такое «блокирующий метод»?

Блокирующий метод – метод, который блокируется, до тех пор, пока задание не выполнится, например метод accept() у ServerSocket блокируется в ожидании подключения клиента. Здесь блокирование означает, что контроль не вернётся к вызывающему методу до тех пор, пока не выполнится задание. Так же существуют асинхронные или неблокирующиеся методы, которые могут завершится до выполнения задачи.
👍17
#Вопросы_с_собеседования

Какие типы ключевых слов используются в обработке исключений Java?

try
catch
finally
throw
throws
👍45
#Вопросы_с_собеседования

В чем разница между абстрактными классами и интерфейсами?

Ответ на картинке.
👍39👎20🔥1
#Вопросы_с_собеседования

Дайте краткую характеристику Enum в Java

Enum — перечисление, набор строковых констант, объединенных общим типом. Объявляется через ключевое слово — enum.

Вот пример с enum — допустимые роли в некоторой школе(см картинку).

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

Использование перечислений заметно упрощает жизнь, так как они помогают избежать ошибок и путаницы в наименованиях (так как может быть только определенный перечень значений).
👍18
NullPointer Exception

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

Рассмотрим строчку кода из примера 1 на картинке. Если объект school окажется равен null или его метод listStudents вернет null, вы получите исключение NullPointerException.

Хорошей практикой разработки на Java является предварительная проверка на null в методах (как в примере 2).
👍24👎4
#Вопросы_с_собеседования

Что такое маркерный интерфейс? Каковы известные примеры таких интерфейсов в Java?

Маркерный интерфейс — это интерфейс без каких-либо методов. Обычно он реализуется классом или расширяется другим интерфейсом для обозначения определенного свойства. Наиболее широко известными маркерами в стандартной библиотеке Java являются следующие:

☕️ Serializable используется для явного указания того, что этот класс может быть сериализован;
☕️ Cloneable позволяет клонировать объекты с помощью метода clone (без интерфейса Cloneable этот метод выдает исключение CloneNotSupportedException);
☕️ Remote используется в RMI для указания интерфейса, методы которого можно вызывать удаленно.
👍19
#Вопросы_с_собеседования

Какие существуют состояния потоков (thread)?

Существует 4 состояния потока в Java:

1) Новый поток.
2) Запускаемый (Runnable).
3) Незапускаемый (Non-Runnable).
4)Мертвый или прекращенный (Dead или Terminated).
👍40👎13😱4
#Вопросы_с_собеседования

Можно ли указывать конструктор внутри Enum?

Да, конечно. Именно через конструктор и задаются значения внутренних переменных enum.

В качестве примера добавим два поля — ageFrom и ageTo — чтобы обозначить возрастные рамки для каждой роли.
👍397
👍1
Что выведет код?
Anonymous Quiz
36%
0009
30%
00009
6%
49
6%
0049
10%
9
12%
Другое
👍19
#Вопросы_с_собеседования

Что такое классы-оболочки? Что такое автоупаковка?

Для каждого из восьми примитивных типов в Java существует класс-оболочка, который можно использовать для обертывания примитивного значения и использования его как объекта. Эти классы, соответственно, Boolean, Byte, Short, Character, Integer, Float, Long и Double. Эти оболочки могут быть полезны, например, когда вам нужно поместить примитивное значение в общую коллекцию, которая принимает только объекты.

List<Integer> list = new ArrayList<>();
list.add(new Integer(5));

Чтобы избежать необходимости вручную преобразовывать примитивы туда и обратно, компилятор Java обеспечивает автоматическое преобразование, известное как автоупаковка/автораспаковка.

List<Integer> list = new ArrayList<>();
list.add(5);
int value = list.get(0);
👍34
#Вопросы_с_собеседования

Что выведет код сверху?

Ответ:
Программа не выдаст ошибки компиляции. Поскольку a больше 20, а b больше 25, будет выведена 1. Второй оператор if не будет истинным, так как a не больше 30, поэтому будет выполнен блок else, который выведет 3. Таким образом, на выходе будет 1, а затем 3. Обратите пристальное внимание на операторы if и else if. Если бы вместо второго оператора if был оператор else if, то на выходе была бы только 1.
👍57
👍1
😢24👍16🤔5
#Вопросы_с_собеседования

Какой оператор позволяет принудительно выбросить исключение? Напишите пример

Ответ на картинке.
👍27😱2
#Вопросы_с_собеседования

Какими свойствами обладает порождаемое equals() отношение эквивалентности?

☕️ Рефлексивность: для любой ссылки на значение x, x.equals(x) вернет true;
☕️ Симметричность: для любых ссылок на значения x и y, x.equals(y) должно вернуть true, тогда и только тогда, когда y.equals(x) возвращает true.
☕️ Транзитивность: для любых ссылок на значения x, y и z, если x.equals(y) и y.equals(z) возвращают true, тогда и x.equals(z) вернёт true;
☕️ Непротиворечивость: для любых ссылок на значения х и у, если несколько раз вызвать х.equals(y), постоянно будет возвращаться значение true либо постоянно будет возвращаться значение false при условии, что никакая информация, используемая при сравнении объектов, не поменялась.

Для любой ненулевой ссылки на значение х выражение х.equals(null) должно возвращать false.
👍19