Тех собес на middle-senior Java Разработчик в ****

Доступно с премиум-подпиской

Оформите премиум-подписку, чтобы получить доступ к:

  • Фильтрации по компаниям
  • Названиям компаний в интервью
  • Видеозаписям собеседований в категории Java Разработчик

Посмотреть видео в категории

(2024-07-06)

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();
    }
}