Можно ли использовать такой класс как спринг бин?
Anonymous Quiz
41%
да, можно
38%
нет, нельзя
21%
узнать ответ
👎8👍6🔥3
Как отработает synchronized в данном коде?
Anonymous Quiz
39%
Поток который придет в метод doLogic вторым, будет ждать пока отработает перый поток
40%
Второй поток не будет ждать
11%
Будет dead lock
10%
Узнать ответ
🔥11❤1
Java Interview Tasks
Как отработает synchronized в данном коде?
Ответ к вопросу про synchronized - синхронизация в данном коде будет по объекту String clientId. client1 и client в данном случае это две разных строки (ссылаются на разные объекты) и поэтому синхронизация не сработает, второй поток зайдет, получив лок для своего объекта. Вообще такой вариант синхронизации не самый удачный. Подробнее можно почитать тут - https://www.baeldung.com/java-synchronization-bad-practices
Baeldung
Bad Practices With Synchronization | Baeldung
Learn about a few bad practices associated with synchronization and the better approaches for each use case
👍7❤1
Что напечатает код?
Anonymous Quiz
4%
198.265.0.0
51%
198:265:0:0
32%
:::::::::::
2%
...........
5%
exception
5%
что-то еще
👍20💅9🔥4😱3
Java Interview Tasks
Что напечатает код?
Тут проблема в том, что "." означает регулярное выражение, так как метод replaceAll первым параметром принимает регулярку. Решение - сделать escape - "\\."
🔥11👏2
Java Interview Tasks
#задача_с_собеседования
ChatGPT это не может решить - https://t.me/ChatGPT_BotGroup/17347
Так что кто решил - можете радоваться, мы пока еще нужны)
Так что кто решил - можете радоваться, мы пока еще нужны)
Telegram
ChatGPT in ChatGPT
public static int ff() {
Random random = new Random();
return random.nextInt(2);
}
public static int gg() {
return ff() ^ 1;
}
Если хотите убрать ограничения, то попробуйте отправить запрос боту @ChatGPTCompletionBot
Random random = new Random();
return random.nextInt(2);
}
public static int gg() {
return ff() ^ 1;
}
Если хотите убрать ограничения, то попробуйте отправить запрос боту @ChatGPTCompletionBot
🥰2
Какие значения могут напечататься? (thread1 и thread2 запускаются одновременно в разных потоках)
Anonymous Quiz
18%
"0, 0", "1, 1"
19%
"0, 0", "1, 1", "1, 0"
11%
"0, 0", "1, 1", "0, 1"
51%
"0, 0", "1, 1", "0, 1", "1, 0"
🔥9😱7👏2
Ответ (https://t.me/java_interview_tasks/265) : тут нарушен порядок HB сначала идет запись в volatile поле g, а потом в x, поэтому чтение из g единицы не дает гарантий относительно x.
Поэтому возможны все варианты: "0, 0", "1, 1", "0, 1", "1, 0"
Поэтому возможны все варианты: "0, 0", "1, 1", "0, 1", "1, 0"
Telegram
Java Interview Tasks
Какие значения могут напечататься? (thread1 и thread2 запускаются одновременно в разных потоках)
🔥5👏1💩1
Что будет в результате выполнения кода?
List<Integer> integers = List.of();
List<Integer> integers1 = integers.subList(0, 0);
System.out.println(integers1);
List<Integer> integers = List.of();
List<Integer> integers1 = integers.subList(0, 0);
System.out.println(integers1);
👍5❤1
Что будет в результате выполнения кода выше?
Anonymous Quiz
22%
ArrayIndexOutOfBoundsException
26%
IndexOutOfBoundsException
18%
какой-то другой ексепшен
17%
что-то еще
17%
узнать ответ
👏4🔥2
Что будет, если мы передадим для сохранения список Item'ов, у которых 0-й и 2-й элемент НЕ являются error items,
а 1-й - является (item.field = "error" для error item)?
а 1-й - является (item.field = "error" для error item)?
Anonymous Quiz
42%
Ничего не будет сохранено, поскольку RuntimeException в методе saveItem откатит транзакцию;
12%
Будет сохранен только 0-й элемент;
33%
Будет сохранен 0-й и 2-й элемент;
12%
Узнать ответ
2%
Я не использую транзакции
🔥8👍3
Ответ к вопросу про ошибки в транзакциях:
Правильный ответ - 3. (Будет сохранен 0-й и 2-й элемент)
Когда мы из компонента так вызываем метод того же компонента,
это просто вызов внутреннего метода, а не метода прокси-объекта. Он попросту игнорирует аннотацию
@Transactional у saveItem и не будет создавать новый транзакционный контекст. А значит RuntimeException не пересечет границу @Transactional-метода.
Правильный ответ - 3. (Будет сохранен 0-й и 2-й элемент)
Когда мы из компонента так вызываем метод того же компонента,
это просто вызов внутреннего метода, а не метода прокси-объекта. Он попросту игнорирует аннотацию
@Transactional у saveItem и не будет создавать новый транзакционный контекст. А значит RuntimeException не пересечет границу @Transactional-метода.
🔥6❤1