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

5 respostas
xxmayconxx
List lista1 = new ArrayList();

e

ArrayList lista1 = new ArrayList();

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

5 Respostas

Rodrigo_Sasaki

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.

saoj

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

xxmayconxx

Entendi, obrigado

WRYEL

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)

xxmayconxx

Wryel, voce quer dizer então que essa linha

ArrayList lista1 = new ArrayList();

ganha em velocidade?

Criado 28 de maio de 2012
Ultima resposta 28 de mai. de 2012
Respostas 5
Participantes 4