Java Interview Tasks
3.9K subscribers
185 photos
1 file
121 links
Реальные вопросы и задачи с собеседований.
Оригинальный авторский контент.
Актуальный материал.
Уровень вопросов от junior до supersenior.

Автор канала - @alexzelentsov

По рекламе: @alexzelentsov и https://telega.in/c/java_interview_tasks
Download Telegram
#concurrency #java
class A {
int a;
int b;

void m1() {
a++;
b++;
}

void m2() {

System.out.println(b);
System.out.println(a);
}
}

// пример вывода
: b=1 a=0

Методы m1 и m2 запускаются в разных потоках, одновременно, один раз каждый
Сколько вариантов вывода может быть?
Ваши варианты пишите в комментах
Anonymous Quiz
7%
1
12%
2
14%
3
51%
4
17%
Узнать ответ
👍2
Что нужно сделать что бы doInTransaction выполнился в отдельной транзакции ?
Что нужно сделать в коде выше что бы doInTransaction выполнился в отдельной транзакции ?
Anonymous Quiz
22%
поставить аннотацию @Transactional над методом doInTransaction
34%
поставить аннотацию @Transactional(propagation = REQUIRES_NEW) над методом doInTransaction
11%
поставить аннотацию @Transactional(propagation = REQUIRES_NEW) над методом perform
27%
ничего из вышеперечисленного не поможет
Сколько вариантов может напечатать thread2? #concurrency
Сколько вариантов может напечатать thread2? (thread1 и thread2 запускаются в разных потоках)
Anonymous Quiz
18%
1
53%
2
29%
больше 2-х
Где надо поставить synchronized?
Нужно ли указывать третий параметр (mergeFunction) в методе Collectors.toMap(this::getKey(), this::getValue(), (o1, o2) -> o1) ? Если нужно, то для чего? и что будет если не указать его? пишите в комментах
Anonymous Quiz
16%
обязательно нужно всегда
45%
нужно, в зависимости от исходного стрима
18%
не нужно
19%
хочу узнать ответ
2%
не использую стримы, циклы надежнее
Может ли не завершится thread1? (thread1 и thread2 запускаются одновременно в разных потоках)
Может ли не завершится thread1? (thread1 и thread2 запускаются одновременно в разных потоках)
Anonymous Quiz
61%
может не завершится
19%
всегда завершится
18%
никогда не завершится
2%
другой ответ (пишите в комменты)
Можно ли xmlMapper использовать как поле в классе ниже
или нужно его объявить как переменную внутри метода deserialize?
Обоснования пишите в комментариях
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
@Slf4j
@SuppressWarnings("unused")
public class EventDeserializer implements Deserializer<Event> {

private final XmlMapper xmlMapper = new XmlMapper();

@Override
public Event deserialize(String topic, byte[] data) {
try {
return xmlMapper.readValue(data, Event.class);
} catch (IOException e) {
log.error("Error deserialize message topic {}", topic, e);
}
return null;
}

}
Вопрос по коду выше.
Можно ли xmlMapper использовать как поле в классе ниже
или нужно его объявить как переменную внутри метода deserialize? Обоснования пишите в комментариях
Anonymous Quiz
50%
можно объявить как поле
20%
нельзя как поле, только как переменную локальную
7%
нельзя никак
22%
разницы нет
Как правильно сравнивать строки?

Почему Ваш вариант самый правильный пишите в комменты
Anonymous Quiz
43%
str.equals(“123”)
45%
“123”.equals(str)
2%
str == “123”
10%
Все варианты неверные
Что выведется в консоль?
Почему ide выделяет желтым '==' пишите в комментах
Что выведется в консоль?
Почему ide выделяет желтым '==' пишите в комментах
Anonymous Quiz
29%
true, true
45%
true, false
23%
false, false
2%
false, true
2%
пишу на с++, потому что джава медленная
Ответ на вчерашнюю задачу:
Сравнение происходит не значений, а ссылок объектов.
Но в java есть пул для объектов типа Long (от -127 до 127 включительно)
поэтому первое равенство выполняется так как сравнивается один и тот же объект,
а второе = false, так как сравниваются разные объекты.

Идея именно поэтому и показывает warning, предлагая сравнивать через equals
Какой будет результат выполнения кода?