Percebi que também é possível o uso do de diferentes formas, por exemplo:
`
1 - ArrayList <Integer> lista = new <Integer> ArrayList();
2 - ArrayList <Integer> lista = new ArrayList();
3 - ArrayList lista = new <Integer> ArrayList();
`
Sendo que na primeira funciona, não consigo posteriormente passar um valor que nao seja do tipo Int.
Na segunda também funciona da mesma forma. Não consigo adicionar nos índices tipos que não sejam int
Porém na terceira forma continua compilando, porém consigo adicionar valores que NÃO são do tipo int.
Gostaria de saber a diferença entre as 3 formas, especificamente se da 1° para a 2° existe apenas uma diferença sintática ou por debaixo dos panos algo muda consequentemente.