Ответ 1
В вашем случае это не имеет большого значения.
Но рассмотрим следующее:
public <T extends SomeClass> void doSomething(List<T> obj)
В этом случае вы можете вызвать метод следующими способами:
obj.doSomething(new ArrayList<SubclassOfSomeClass>());
obj.doSomething(new ArrayList<SomeClass>());
Если вы будете использовать
public void doSomething(List<SomeClass> obj)
Вы могли бы сделать это только:
obj.doSomething(new ArrayList<SomeClass>());