Java Learning
18.9K subscribers
1.61K photos
1 video
3 files
986 links
№ 5079899194

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

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

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

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
#Вопросы_с_собеседования

В чем разница между перегрузкой и переопределением чего-либо?

Переопределение выполняется во время работы программы, а перегрузка — во время компиляции. Также переопределение и перегрузка выполняются по-разному: в Java перегружаемый метод должен иметь отличную от оригинального метода сигнатуру, а в случае с переопределением она может быть той же самой.
👍202
👍18👎10
Что выведет код сверху?
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