Ну любая IDE малость поумнее консольного компилятора 7ой трубы и не закрывается если не вставить такой костыль.
Это не для IDE, а для программы. Она после запуска выводит в консоль hello world и ждет, пока не нажмешь enter, после нажатия - завершается.
А какая разница? Если запускать её из консоли (а без оболочки так и будет) то программа просто отработает и не надо ьудет лишний раз жать энтер. Да, и нормальные юди в таком случае пишут System.out.println("Press enter to continue");
Если запустить программу в IDE или из консоли - вывод можно будет прочитать и после завершения работы программы. Но возможны ситуации, когда консоль будет создана для запуска программы и закрыта вместе с программой - вот в этом случае программист может захотеть заставить программу "подождать", пока он прочитает вывод.