Пояснение по шагам:
Scanner scanner = new Scanner(System.in);
Создает объект для чтения ввода с клавиатуры.
scanner.nextLine();
Программа останавливается и ждет, пока пользователь нажмет Enter. После этого секундомер начинает работу.
Thread inputThread = new Thread(() -> { ... });
Создается новый поток, который работает параллельно. Он тоже ждет нажатия Enter — но второго. Когда пользователь нажимает его еще раз, программа завершает выполнение с помощью System.exit(0).
while (true)
Бесконечный цикл, который:
выводит число прошедших секунд;
делает паузу в одну секунду (Thread.sleep(1000));
увеличивает счетчик на 1.
Это уже вполне рабочее приложение. Да, оно простое, но выполняет задачу и показывает вам реальные основы как:
Все это — фундамент, на котором строятся более сложные программы.