Originariamente inviato da Pacio88
Però mi sfugge ancora quali sono i pro e i contro tra i due tipi di inizializzazione che ho postato inizialmente.
Beh ma dipende da cosa devi fare di preciso .... la questione è solo il livello di "astrazione" che si vuole poter avere e gestire.

Se usi il secondo assegnamento, si presuppone che magari più avanti nel codice tu abbia necessità di assegnare a quella variabile una istanza di un'altro tipo di collezione es. un HashSet che è anche lui un Collection. Proprio perché magari devi lavorare "sapendo" solo che è un Collection e basta.
Se invece l'obiettivo è solo quello di usare specificatamente un ArrayList, il secondo assegnamento addirittura può esserti di impiccio ... perché "restringe" la visione della collezione e non ti permette di fare cose più specifiche.

Uno dei principi basilari della OOP è quello di cercare di codificare, ove possibile e ha senso, verso una interfaccia (qui interfaccia è da intendere in senso generale .... come tipo più generico/astratto, non necessariamente una interface!)