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

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

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

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

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

Какие существуют состояния потоков (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
В переменной типа char хранятся значения из следующего диапазона:
Anonymous Quiz
35%
От 0 до 255
35%
От 0 до \uFFFF
12%
От 0 до 32767
11%
От -32768 до 32767
8%
Узнать ответ
👍22
#Вопросы_с_собеседования

Что такое Java-конфигурация? Как она применяется?

Чтобы в Spring создать класс с конфигурацией на основе Java-кода, нужно аннотировать его с помощью
@Configuration. Этот класс будет содержать фабричные методы для создания бинов в контейнере. Данные методы должны быть аннотированы аннотацией @Bean. Класс с конфигурацией поместит в контейнер экземпляр класса DataSource. Потом его можно будет использовать при доступе к базе данных.
👍20
Побитовые операции

~ : Побитовый унарный оператор NOT;
& : Побитовый AND;
&= : Побитовый AND с присваиванием;
| : Побитовый OR;
|= : Побитовый OR с присваиванием;
^ : Побитовый исключающее XOR;
^= : Побитовый исключающее XOR с присваиванием;
>> : Сдвиг вправо (деление на 2 в степени сдвига);
>>= : Сдвиг вправо с присваиванием;
>>> : Сдвиг вправо без учёта знака;
>>>= : Сдвиг вправо без учёта знака с присваиванием;
<< : Сдвиг влево (умножение на 2 в степени сдвига);
<<= : Сдвиг влево с присваиванием.
👍18
Оператор instanceof

Оператор java instanceof используется для проверки того, является ли объект экземпляром указанного типа (класса или подкласса или интерфейса). Во время выполнения результат оператора instanceof равен true, если значение выражения не равно null.

Это важное свойство операции instanceof, которое делает ее полезной для проверки приведения типов.
👍30
#Вопросы_с_собеседования

В чем заключается особенность работы метода clone () с полями объекта типа ссылки?

При клонировании объектов копируются только примитивные значения и значение ссылок на объекты. Это значит, что если объект имеет во внутреннем поле ссылку на другой объект, то будет клонирована только эта ссылка, сам же этот другой объект клонирован не будет. Собственно, это и называют — поверхностным клонированием.

Ну а что, если вам нужно полноценное клонирование с клонированием всех вложенных объектов? Как сделать, чтобы это были не копии ссылок, а полноценные клоны объекты с другими занимаемыми ячейками памяти в куче?

На самом деле все довольно просто — для этого вам нужно в каждом классе этих внутренних объектов также переопределить метод clone() и добавить интерфейс маркер — Cloneable. Тогда будут скопированные не ссылки на объекты, а сами объекты, ведь теперь они тоже имеют возможность копировать себя.
👍24😢1
Перевод строки в число

Часто бывает нужно перевести строку в число. У классов оберток примитивных типов есть методы, которые служат как раз для этой цели. Все эти методы начинаются со слова parse. Рассмотрим ниже перевод строки в целочисленное (Integer) и дробное (Double) числа.
👍284😢1