Oi WIlker, tudo bem? Esse <T>
indica o uso de Generics, mas o que isso quer dizer? No caso do ArrayList que você citou, isso quer dizer que a lista pode ser de um tipo qualquer que você pode específicar, ou seja, pode ser uma lista de String, Long, Integer, Double, etc. Inclusive, pode ser uma lista dos tipos que você mesmo criou, Usuario, Aluno, etc.
É um conceito de flexibilização, podemos dizer até que cai dentro do conceito de polimorfismo, isso por que o funcionamento da lista em si, funciona corretamente independente do tipo de objeto que está dentro dela. Ai para generalizar, dizemos que a lista pode trabalhar com o tipo T, que pode ser qualquer tipo.
Assim você pode trabalhar com os tipos que quiser sem precisar usar o tal do Objetct que é o tipo mais genérico do Java.