Le istruzioni di importazione influiscono solo su ciò che accade durante la compilazione.
Il compilatore prende questo codice e crea un file .class
che rappresenta il codice in un formato eseguibile (qualcosa in binario).
Alla fine, i binari sono esattamente gli stessi, ma il metodo con cui sono realizzati sono diversi. sguardo
Let ad un caso semplice:
import java.util.*;
vs
import java.util.ArrayList;
import java.util.List;
se usato in:
//...
List <String> someList = new ArrayList <String>();
//...
Quando il compilatore colpisce la parola List
, nel primo caso, sarà necessario capire se List
esiste in quel set di classi o no. Nel secondo caso, è già dato esplicitamente, quindi è molto più facile.
In sostanza, il compilatore deve prendere tutte le classi esistenti nelle istruzioni import
e tenere traccia dei loro nomi in modo che, se lo si utilizza, il compilatore possa recuperare le funzioni appropriate che si stanno chiamando.
A volte esistono classi con lo stesso nome in più pacchetti.È in questo caso (a cui si riferisce Thomas) che non si dovrebbe usare lo *
per selezionare tutte le classi nella directory.
È consigliabile descrivere esplicitamente l'utilizzo della classe.
fonte
2011-12-18 06:44:29
Grazie a tutti per i vostri commenti. Questo è stato molto istruttivo. Sono consapevole della necessità di mantenere pulito il mio codice e di quando è e quando non è il momento di preoccuparsi delle prestazioni. Questo era solo per l'istruzione aggiunta. Ora sento anche che la parola "ridondante" era la scelta sbagliata, quello che intendevo era una dichiarazione di importazione che non è più necessaria. come se tu usassi qualcosa come java.util.ArrayList e poi cambi il tuo codice in modo tale che questa classe non sia più usata. E stavo vagando se il fatto che la dichiarazione di importazione fosse ancora lì avrebbe reso il mio codice più grande o più lento. – epeleg