Qual a diferença entre esses dois tipos de instanciação?[RESOLVIDO]

[code]List lista1 = new ArrayList();

e

ArrayList lista1 = new ArrayList();[/code]

um deles é mais rápido que o outro ou é exatamente a mesma coisa

um não vai ser mais rápido que o outro, a diferença é que List é uma interface e ArrayList é a implementação dessa interface, a única coisa que pode diferenciar nesse caso, é se ArrayList tiver métodos que não existem em List, assim só poderão ser invocados se for instanciado da segunda maneira, ou via cast.

De qualquer forma, a boa prática é sempre usar interfaces.

Um acopla o seu código a implementação (classe concreta). O outro acopla o seu código a uma especificação (interface). Qual vc acha que é mais flexível?

Dá uma estudada em Inversão de Controle também. Um exemplo aqui: http://www.mentaframework.org/mtw/Page/IoC/mentawai-inversao-de-controle

Entendi, obrigado

Acesso por interfaces é sempre mais lento (mais instruições… mas a perda chega a ser ridícula) que classes concretas, pois requer trabalho adicional para encontrar o método correspondente.

Programação para interface é sempre mais receptivo a mudanças e manutenções :o)

Wryel, voce quer dizer então que essa linha

ArrayList lista1 = new ArrayList();

ganha em velocidade?