Java
- что вернется в каждом случае и почему? "Hello мир".length "Hello мир".getBytes().length
- что выведет консоль?
String a1 = "a";
String a2 = "а";
String a3 = new String("а");
System.out.println(a1 == a2);
System.out.println(a1 == а3);
System.out.println(а1.equals(а2))
System.out.println(а1.equals(а3))
- какие примитивные переменные есть и сколько памяти они занимают?
- какие значения может принимать integer?
- как создать immutable класс у которого одно из полей типа List?
- какие есть полезные инструменты в concurrent пакете?
- для чего нужeн ExecutorService?
- внутренняя реализация атомиков?
- что такое happens before?
- какие интерфейсы и классы есть в Collections?
- как работает HashMap?
- что такое лямбды, для чего нужны и как используются?
- как работают стримы?
- устройство памяти JVM?
- как работает GC?
Spring
- для чего нужен Spring, какие преимущества и какие недостатки у него?
- какие есть скоупы у бинов?
- жизненный цикл бинов?
Задача на мультипоточность
Given: Robot with two legs. Fix the template below to synchronize the legs one by one: -..-left-right-left-right-.. (200 times in this example)
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();
}
}