Eclipse и MyEclipse создают новые файлы Java с дополнительной пустой строкой после последней закрывающей фигурной скобки по умолчанию. Я думаю, что CodeWarrior сделал то же самое несколько лет назад, и что некоторые люди оставляют такие пустые строки в своем коде или намерением или ленью. Так, это, кажется, по крайней мере, умеренно широко распространенное поведение.
Как бывший редактор естественного языка - газеты редактирования копии, главным образом - я нахожу, что те строки похожи на небрежность или несчастные случаи, и я не могу думать о причине оставить их в исходных файлах. Я знаю, что они не влияют на компиляцию на языках C-стиля, включая Java. Там извлекает выгоду, к наличию тех строк, и если так, каковы они?
Это исторический факт, связанный с распространенными ошибками в утилитах командной строки для обработки текста. В системе Unix существует множество программ для обработки текста, и большинство из них работают построчно. Могут быть, а могут и не быть какие-либо общие инструменты командной строки, которые неправильно работают, когда последняя строка не заканчивается новой строкой, но исторически это явление достаточно распространено, чтобы другие инструменты начали предупреждать о ситуации.
Последний раз я проверял, что vim на самом деле не может сохранить файл, не заканчивающийся символом новой строки, вплоть до добавления файла, независимо от того, помещаете вы его туда или нет.
Это не обязательно историческая причина, но это веская причина, ИМО:
Это не дает вам забыть поставить завершающую новую строку в конец вашего файла. Компиляторы обычно предупреждают об этом, и системы управления версиями тоже часто будут отображать строку как измененную, когда вы добавляете новую строку, чтобы избавиться от предупреждения компилятора.
Короче говоря, это снижает вероятность шума и ненужных различий SCM.
AFAIK, хорошей практикой является то, что каждая строка заканчивается символом новой строки, потому что когда код разбирается, его можно прочитать с помощью одной простой функции, которая разделит файл на строки в соответствии с этими символами новой строки. Без пустой строки и, следовательно, последней строки, завершенной символом новой строки, вы потеряете все символы на этой строке.