Java Interview Tasks
какие тут проблемы могут быть? (метод get могут вызывать разные потоки одновременно)
Что бы понять нужен ли volatile над полем, проведем несколько тестов:
Будем использовать jcstress - https://openjdk.org/projects/code-tools/jcstress/
(https://youtu.be/uZfK-9ixxec?si=oE1Lqvp8_wxoLOuY)
Код двух экспериментов ниже:
Будем использовать jcstress - https://openjdk.org/projects/code-tools/jcstress/
(https://youtu.be/uZfK-9ixxec?si=oE1Lqvp8_wxoLOuY)
Код двух экспериментов ниже:
🔥3❤2👍1
Запускал эти тесты у себя локально, на jdk11:
java.specification.name Java Platform API Specification
java.specification.vendor Oracle Corporation
java.specification.version 11
java.vendor Amazon.com Inc.
java.version 11.0.19
java.vm.name OpenJDK 64-Bit Server VM
java.vm.vendor Amazon.com Inc.
java.vm.version 11.0.19+7-LTS
os.arch amd64
os.name Windows 11
os.version 10.0
java.specification.name Java Platform API Specification
java.specification.vendor Oracle Corporation
java.specification.version 11
java.vendor Amazon.com Inc.
java.version 11.0.19
java.vm.name OpenJDK 64-Bit Server VM
java.vm.vendor Amazon.com Inc.
java.vm.version 11.0.19+7-LTS
os.arch amd64
os.name Windows 11
os.version 10.0
🔥4❤2
Какие потоки будут создаваться быстрее?
Anonymous Quiz
54%
virtual threads быстрее
20%
большой разницы не будет
9%
threads быстрее
17%
узнать ответ
🔥7🐳3👍1
Где будет исполнен метод doInternal?
Anonymous Quiz
24%
В новом треде
39%
В том же треде что и forceThread
11%
Код упадет, так как метод run нельзя вызывать у потока
8%
Код не скомпилирется
17%
Узнать ответ
👍5🔥5🥱2❤1
Что напечатает код, если index = -1?
Anonymous Quiz
8%
1
39%
ничего
36%
будет runtime exception
10%
будет compilation error
7%
узнать ответ
👍9👎6🤔2
Тут проблема в приоритете операций, код выше эквивалентен такому:
if ((index >= 0 && s.charAt(index) == 'q') || s.charAt(index) == '\t')
Поэтому правильный вариант будет - StringIndexOutOfBoundsException, так как код дойдет до выполнения s.charAt(index) и упадет на нем
if ((index >= 0 && s.charAt(index) == 'q') || s.charAt(index) == '\t')
Поэтому правильный вариант будет - StringIndexOutOfBoundsException, так как код дойдет до выполнения s.charAt(index) и упадет на нем
Telegram
Java Interview Tasks
Что напечатает код, если index = -1? (Разъяснение ответа будет завтра)
👍6❤2🔥2
Что вернет метод, если ret1 = 10, ret2 = 30, retStep = 2?
Anonymous Quiz
3%
10
25%
1
64%
100
6%
runtime exception
2%
узнать ответ
👍18👎8😐1