На данный вопрос уже ответили:
Часто встречаю в книгах: необходим ArrayList. но вместо
ArrayList<> arr = new ArrayList<>();
Делают так:
List<> arr = new ArrayList<>();
В чём плюс этого?
Это делает код более гибким и позволяет проще подменить конкретную реализацию списка в случае необходимости. Предпоследняя буква в SOLID про это в частности.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей