Isso tem a ver com a clareza do programa útil para manutenção.
Se você tivesse que manter um programa, descobrirá como é útil ter uma única importação de classe por linha.
Pense no seguinte cenário:
import company.billing.*;
import company.humanrerources.*;
// other imports
class SomeClass {
// hundreds or thousands of lines here...
public void veryImportantMethod() {
Customer customer;
Employee comployee;
Department dept.
// do something with them
}
}
Quando você está corrigindo bugs ou mantendo parte do código (ou apenas lendo), é muito útil para o leitor saber a qual pacote as classes usadas pertencem. Usar a importação de curinga como mostrado acima não ajuda para esse propósito.
Mesmo com um IDE, você não quer passar o mouse ou pular para a declaração e o retorno, é mais fácil se você entender em termos de funcionalidade de quais outros pacotes e classes o código atual depende.
Se for um projeto pessoal ou algo pequeno, realmente não importa, mas para algo maior que deve ser usado por outros desenvolvedores (e mantido ao longo dos anos), isso é OBRIGATÓRIO.
Não há absolutamente nenhuma diferença de desempenho com nenhum.