#Вопросы_с_собеседования
❓Какие существуют состояния потоков (thread)?
Существует 4 состояния потока в Java:
1) Новый поток.
2) Запускаемый (Runnable).
3) Незапускаемый (Non-Runnable).
4)Мертвый или прекращенный (Dead или Terminated).
❓Какие существуют состояния потоков (thread)?
1) Новый поток.
2) Запускаемый (Runnable).
3) Незапускаемый (Non-Runnable).
4)Мертвый или прекращенный (Dead или Terminated).
👍40👎13😱4
#Вопросы_с_собеседования
❓Можно ли указывать конструктор внутри Enum?
Да, конечно. Именно через конструктор и задаются значения внутренних переменных enum.
В качестве примера добавим два поля — ageFrom и ageTo — чтобы обозначить возрастные рамки для каждой роли.
❓Можно ли указывать конструктор внутри Enum?
В качестве примера добавим два поля — ageFrom и ageTo — чтобы обозначить возрастные рамки для каждой роли.
👍39❤7
👍19
#Вопросы_с_собеседования
Что такое классы-оболочки? Что такое автоупаковка?
Для каждого из восьми примитивных типов в Java существует класс-оболочка, который можно использовать для обертывания примитивного значения и использования его как объекта. Эти классы, соответственно, Boolean, Byte, Short, Character, Integer, Float, Long и Double. Эти оболочки могут быть полезны, например, когда вам нужно поместить примитивное значение в общую коллекцию, которая принимает только объекты.
Что такое классы-оболочки? Что такое автоупаковка?
Для каждого из восьми примитивных типов в 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
Что выведет программа?
Anonymous Quiz
23%
A.print() is called
50%
B.print() is called
19%
Compiler Error
5%
Runtime Error
3%
Другое
😢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.
Какими свойствами обладает порождаемое 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-кода, нужно аннотировать его с помощью
❓Что такое Java-конфигурация? Как она применяется?
Чтобы в Spring создать класс с конфигурацией на основе Java-кода, нужно аннотировать его с помощью
@Configuration. Этот класс будет содержать фабричные методы для создания бинов в контейнере. Данные методы должны быть аннотированы аннотацией @Bean. Класс с конфигурацией поместит в контейнер экземпляр класса DataSource. Потом его можно будет использовать при доступе к базе данных.👍20
Побитовые операции
•
•
•
•
•
•
•
•
•
•
•
•
•
•
~ : Побитовый унарный оператор NOT;•
& : Побитовый AND;•
&= : Побитовый AND с присваиванием;•
| : Побитовый OR;•
|= : Побитовый OR с присваиванием;•
^ : Побитовый исключающее XOR;•
^= : Побитовый исключающее XOR с присваиванием;•
>> : Сдвиг вправо (деление на 2 в степени сдвига);•
>>= : Сдвиг вправо с присваиванием;•
>>> : Сдвиг вправо без учёта знака;•
>>>= : Сдвиг вправо без учёта знака с присваиванием;•
<< : Сдвиг влево (умножение на 2 в степени сдвига);•
<<= : Сдвиг влево с присваиванием.👍18
Оператор instanceof
Оператор java instanceof используется для проверки того, является ли объект экземпляром указанного типа (класса или подкласса или интерфейса). Во время выполнения результат оператора instanceof равен true, если значение выражения не равно null.
Это важное свойство операции instanceof, которое делает ее полезной для проверки приведения типов.
Оператор java instanceof используется для проверки того, является ли объект экземпляром указанного типа (класса или подкласса или интерфейса). Во время выполнения результат оператора instanceof равен true, если значение выражения не равно null.
Это важное свойство операции instanceof, которое делает ее полезной для проверки приведения типов.
👍30
Основы ООП на примере Java
Константин Ботнарь, Senior Java Android Developer, расскажет об основах ООП с нуля и максимально доступно для всех начинающих разработчиков.
Часть 1 - Смотреть видео
Часть 2 - Смотреть видео
Константин Ботнарь, Senior Java Android Developer, расскажет об основах ООП с нуля и максимально доступно для всех начинающих разработчиков.
Часть 1 - Смотреть видео
Часть 2 - Смотреть видео
YouTube
Основы ООП на примере Java. Часть 1
Объектно-ориентированное программирование – это подход, при котором вся программа рассматривается как набор взаимодействующих друг с другом объектов.
Object-oriented programming (OOP) держится на 3 принципах:
- инкапсуляция
- наследование
- полиморфизм
…
Object-oriented programming (OOP) держится на 3 принципах:
- инкапсуляция
- наследование
- полиморфизм
…
👍14
#Вопросы_с_собеседования
❓В чем заключается особенность работы метода clone () с полями объекта типа ссылки?
При клонировании объектов копируются только примитивные значения и значение ссылок на объекты. Это значит, что если объект имеет во внутреннем поле ссылку на другой объект, то будет клонирована только эта ссылка, сам же этот другой объект клонирован не будет. Собственно, это и называют — поверхностным клонированием.
Ну а что, если вам нужно полноценное клонирование с клонированием всех вложенных объектов? Как сделать, чтобы это были не копии ссылок, а полноценные клоны объекты с другими занимаемыми ячейками памяти в куче?
На самом деле все довольно просто — для этого вам нужно в каждом классе этих внутренних объектов также переопределить метод clone() и добавить интерфейс маркер — Cloneable. Тогда будут скопированные не ссылки на объекты, а сами объекты, ведь теперь они тоже имеют возможность копировать себя.
❓В чем заключается особенность работы метода clone () с полями объекта типа ссылки?
При клонировании объектов копируются только примитивные значения и значение ссылок на объекты. Это значит, что если объект имеет во внутреннем поле ссылку на другой объект, то будет клонирована только эта ссылка, сам же этот другой объект клонирован не будет. Собственно, это и называют — поверхностным клонированием.
Ну а что, если вам нужно полноценное клонирование с клонированием всех вложенных объектов? Как сделать, чтобы это были не копии ссылок, а полноценные клоны объекты с другими занимаемыми ячейками памяти в куче?
На самом деле все довольно просто — для этого вам нужно в каждом классе этих внутренних объектов также переопределить метод clone() и добавить интерфейс маркер — Cloneable. Тогда будут скопированные не ссылки на объекты, а сами объекты, ведь теперь они тоже имеют возможность копировать себя.
👍24😢1