Что будет выведено на экран?
Anonymous Quiz
15%
falsetrue
7%
truefalse
36%
Compiler Error
27%
truetrue
14%
falsefalse
👍23😢9🔥1
Какое из следующих утверждений о потоках неверно?
1. Если метод
2. Порядок, в котором запускались потоки, может не совпадать с порядком их фактического выполнения.
3. Если метод
4. Если метод
Правильный ответ: 3. Если метод вызывается напрямую для объекта , во время выполнения исключение не генерируется. Однако, код, написанный в методе будет выполняться текущим, а не новым потоком. Таким образом, правильный способ запустить поток – это вызов метода , который приводит к выполнению метода новым потоком.
Вызов метода дважды для одного и того же объекта приведёт к генерированию исключения во время выполнения, следовательно, утверждение 1 верно. Утверждение 2 верно, так как порядок, в котором выполняются потоки, определяется Планировщиком потоков, независимо от того, какой поток запущен первым. Утверждение 4 верно, так как поток не освободит блокировки, которые он держит, когда он переходит в состояние Ожидания.
1. Если метод
start() вызывается дважды для одного и того же объекта Thread, во время выполнения генерируется исключение.2. Порядок, в котором запускались потоки, может не совпадать с порядком их фактического выполнения.
3. Если метод
run() вызывается напрямую для объекта Thread, во время выполнения генерируется исключение.4. Если метод
sleep() вызывается для потока, во время выполнения синхронизированного кода, блокировка не снимается.run() Threadrun() start()run() Вызов метода
start() Thread IllegalThreadStateException 👍20🔥7
#Вопросы_с_собеседования
❓Что такое «ссылка на метод»?
Если существующий в классе метод уже делает все, что необходимо, то можно воспользоваться механизмом method reference (ссылка на метод) для непосредственной передачи этого метода. Такая ссылка передается в виде:
•
•
•
Результат будет в точности таким же, как в случае определения лямбда-выражения, которое вызывает этот метод.
Ссылки на методы потенциально более эффективны, чем использование лямбда-выражений. Кроме того, они предоставляют компилятору более качественную информацию о типе и при возможности выбора между использованием ссылки на существующий метод и использованием лямбда-выражения, следует всегда предпочитать использование ссылки на метод.
❓Что такое «ссылка на метод»?
Если существующий в классе метод уже делает все, что необходимо, то можно воспользоваться механизмом method reference (ссылка на метод) для непосредственной передачи этого метода. Такая ссылка передается в виде:
•
имя_класса::имя_статического_метода для статического метода;•
объект_класса::имя_метода для метода экземпляра;•
название_класса::new для конструктора.Результат будет в точности таким же, как в случае определения лямбда-выражения, которое вызывает этот метод.
Ссылки на методы потенциально более эффективны, чем использование лямбда-выражений. Кроме того, они предоставляют компилятору более качественную информацию о типе и при возможности выбора между использованием ссылки на существующий метод и использованием лямбда-выражения, следует всегда предпочитать использование ссылки на метод.
👍28🔥3
Как сделать анимацию с помощью MotionLayout
MotionLayout – это контейнер, который позволяет просто создавать сложные анимации, для чего требуется лишь описать сцену.
Смотреть статью
MotionLayout – это контейнер, который позволяет просто создавать сложные анимации, для чего требуется лишь описать сцену.
Смотреть статью
👍10
👍30😢7🤔3
#Вопросы_с_собеседования
🎙️ Зачем добавили ArrayList, если уже был Vector?
• Методы класса Vector синхронизированы, а ArrayList - нет;
• По умолчанию, Vector удваивает свой размер, когда заканчивается выделенная под элементы память. ArrayList же увеличивает свой размер только на половину.
Vector это устаревший класс и его использование не рекомендовано.
• Методы класса Vector синхронизированы, а ArrayList - нет;
• По умолчанию, Vector удваивает свой размер, когда заканчивается выделенная под элементы память. ArrayList же увеличивает свой размер только на половину.
Vector это устаревший класс и его использование не рекомендовано.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🔥1
#Вопросы_с_собеседования
Поддерживает ли язык Java множественное наследование?
Это очень хитрый вопрос. Интервьюеры часто говорят: если язык C++ может поддерживать непосредственное множественное наследование, то почему Java не может?
Ответ несколько более сложен, чем может показаться на первый взгляд, поскольку Java поддерживает множественное наследование типов, ведь интерфейс в нём может расширять другие интерфейсы. Но множественное наследование реализаций язык Java не поддерживает.
Поддерживает ли язык Java множественное наследование?
Ответ несколько более сложен, чем может показаться на первый взгляд, поскольку Java поддерживает множественное наследование типов, ведь интерфейс в нём может расширять другие интерфейсы. Но множественное наследование реализаций язык Java не поддерживает.
👍24😢1
Холостые циклы в Java
Смысл холостого цикла состоит в ожидании события, до наступления которого текущий поток не может двигаться дальше.
Смотреть статью
Смысл холостого цикла состоит в ожидании события, до наступления которого текущий поток не может двигаться дальше.
Смотреть статью
👍10🤔1
#Вопросы_с_собеседования
🎙️ Какие типы наследования существуют в Java?
В Java мы используем ключевые слова extends для наследования атрибутов и методов суперкласса или базового класса. Существует пять типов наследования:
1) Единое наследование (Single Inheritance).
2) Многоуровневое наследование (Multilevel Inheritance).
3) Иерархическое наследование (Hierarchical Inheritance).
4) Множественное наследование через интерфейс (Multiple Inheritance through Interface).
5) Гибридное наследование (Hybrid Inheritance).
В Java мы используем ключевые слова extends для наследования атрибутов и методов суперкласса или базового класса. Существует пять типов наследования:
2) Многоуровневое наследование (Multilevel Inheritance).
3) Иерархическое наследование (Hierarchical Inheritance).
4) Множественное наследование через интерфейс (Multiple Inheritance through Interface).
5) Гибридное наследование (Hybrid Inheritance).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20😱9
Программа на Java, убирающая все переносы в строке
Для замены всех переносов («\n») можно использовать функцию replace(). String replace() возвращает новый объект String, который содержит ту же последовательность символов, что и исходная строка, но с замененным символом.
Таким образом с помощью функции replace() можно заменять любые символы в строке на нужные.
Для замены всех переносов («\n») можно использовать функцию replace(). String replace() возвращает новый объект String, который содержит ту же последовательность символов, что и исходная строка, но с замененным символом.
Таким образом с помощью функции replace() можно заменять любые символы в строке на нужные.
👍19🤔3❤2
Метод compareTo()
В Java метод compareTo() получает значение 0, если аргумент является строкой лексически равной данной строке; значение меньше 0, если аргумент является строкой лексически большей, чем сравниваемая строка; и значение больше 0, если аргумент является строкой лексически меньшей этой строки.
В Java метод compareTo() получает значение 0, если аргумент является строкой лексически равной данной строке; значение меньше 0, если аргумент является строкой лексически большей, чем сравниваемая строка; и значение больше 0, если аргумент является строкой лексически меньшей этой строки.
👍25🤔1😢1
Графический интерфейс для bash, делаем работу в командной строке удобнее
Когда пишешь код в IntelliJ IDEA, привыкаешь что везде есть подсказки, везде где можно работает комплишен, всегда можно одним кликом перейти на декларацию метода или на его юсаджи.
Смотреть статью
Когда пишешь код в IntelliJ IDEA, привыкаешь что везде есть подсказки, везде где можно работает комплишен, всегда можно одним кликом перейти на декларацию метода или на его юсаджи.
Смотреть статью
👍16
Что выведет код сверху?
Anonymous Quiz
29%
opengenus open false
16%
opengenus opengenus false
12%
opengenus open true
43%
opengenus opengenus true
👍35
#Вопросы_с_собеседования
🎙️ Какими свойствами обладает порождаемое 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.
☕️ Рефлексивность: для любой ссылки на значение 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.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24
#Вопросы_с_собеседования
🎙️ Укажите несколько различий между ключевыми словами super и this в Java
Ответ на картинке.
Ответ на картинке.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33😢2😱1