Java
1. Что вернется в каждом случае и почему? "Hello мир".length и "Hello мир".getBytes().length
2. Что выведет консоль?
String a1 = "a";
String a2 = "а";
String a3 = new String("а");
System.out.println(a1 == a2);
System.out.println(a1 == a3);
System.out.println(a1.equals(a2));
System.out.println(a1.equals(a3));3. Какие примитивные переменные есть и сколько памяти они занимают?
4. Какие значения может принимать integer?
5. Как создать immutable класс, у которого одно из полей типа List?
6. Какие есть полезные инструменты в concurrent пакете?
7. Для чего нужен ExecutorService?
8. Какова внутренняя реализация атомиков?
9. Что такое happens before?
10. Какие интерфейсы и классы есть в Collections?
11. Как работает HashMap?
12. Что такое лямбды, для чего нужны и как используются?
13. Как работают стримы?
14. Каково устройство памяти JVM?
15. Как работает сборщик мусора?
Spring
16. Для чего нужен Spring, какие преимущества и какие недостатки у него?
17. Какие есть скоупы у бинов?
18. Каков жизненный цикл бинов?
Задача на мультипоточность
Практика19. Задача: Исправить шаблон для синхронизации ног робота по очереди (left-right)
public class WalkingRobot {
private final int n;
public WalkingRobot(int n) {
this.n = n;
}
public void left() {
for (int i = 0; i < n; i++) {
System.out.println("left");
}
}
public void right() {
for (int i = 0; i < n; i++) {
System.out.println("right");
}
}
public static void main(String[] args) {
WalkingRobot robot = new WalkingRobot(100);
new Thread(robot::left).start();
new Thread(robot::right).start();
}
}