2010-03-14 8 views

Antwort

15

Nein, Importe werden nur beim Kompilieren verwendet, um Klassenreferenzen zu finden. Fügen Sie ungenutzte Importe hinzu und sie tun nichts. Um es anders auszudrücken:

import java.util.*; 

einfach bedeutet, dass Sie schreiben können:

Map map = new HashMap(); 

statt:

java.util.Map map = new java.util.HashMap(); 

Das ist alles, es tut.

+0

so kann es kompilieren Zeit ein wenig verlangsamen! – Fakrudeen

+1

@Fakrudeen - ja, aber darum geht es nicht. –

+0

@Fakrudeen - und die Kompilierzeit verlangsamen ist wahrscheinlich zu klein, um wahrnehmbar zu sein, –

5

Nein. Die Importe sind reine Kompilierzeit Konstrukt ... syntaktischer Zucker.

Die Importe teilen dem Java-Compiler mit, wie Kennungen im Quellcode vollständig qualifizierten Klassennamen zugeordnet werden. Wenn der Quellcode jedoch keine importierte Klasse verwendet, enthält die Bytecode-Datei keine Verweise darauf. Daher wirkt sich ein redundanter Import nicht auf die Ladezeiten von Klassen aus (und kann dies auch nicht).

5

Importe können sich auf Kompilierung Zeit auswirken, aber nicht auf Ladezeit oder Laufzeit. Wenn Sie Klassen importieren, die Sie nicht benötigen (in der Regel durch Verwendung von Platzhalterimporten bei expliziten Importen), können Sie den Compiler ein wenig verlangsamen.

Aber selbst dieser Effekt ist im Allgemeinen trivial, es sei denn, Sie kompilieren ein riesiges System.

4

Verwechseln Sie nicht das Wort "importieren" mit "Klassen laden". Die import-Anweisung bewirkt, dass kein Code in den Speicher geladen wird. Es ist nur ein Vorteil, der es Ihnen ermöglicht, auf Klassen mit ihrem Kurznamen zu verweisen, anstatt den vollständigen Klassennamen einzugeben (z. B. "Verbindung" anstelle von "java.sql.Connection").