Le dichiarazioni di import non hanno alcuna importanza in fase di esecuzione, ma solo in fase di compilazione, perche' il loro scopo e' unicamente quello di permettere al compilatore di risolvere i nomi di classe utilizzati nel codice in nomi completamente qualificati (i.e. comprensivi del package), in modo da sapere dove andarli a cercare all'interno del classpath.
Detto questo, e' ovvio che l'utilizzo di una forma o l'altra di import e' irrilevante in termini di prestazioni di esecuzione .
Ha invece peso al momento della compilazione. L'utilizzo delle wildcards ( es: javax.swing.* ) risparmia la digitazione di codice allo sviluppatore ( per quanto ormai gli import siano quasi sempre gestiti dall'IDE che si sta utilizzando ) ma obbliga il compilatore a dover "tenere a mente" piu' classi di librerie esterne quando si compila il proprio codice (nel caso dell'esempio, tutte le classi del package javax.swing ) al fine di risolvere i nomi di classe come descritto sopra.
Al contrario, l'esplicitazione di tutti i singoli import (es: javax.swing.JFrame ) permette al compilatore di considerare le sole classi indicati nell'import per la risoluzione dei simboli.
In questi termini, quest'ultimo approccio dovrebbe velocizzare e/o ridurre il footprint di memoria della fase di compilazione. Quanto si guadagni e' discutibile, soprattutto visto che dei tempi di compilazione all'utente finale non interessa una mazza ...
Personalmente preferisco l'utilizzo degli import estesi, perche' cosi' solo guardando gli import si capiscono praticamente tutte le dipendenze esterne.



Rispondi quotando