Was passiert mit importierten Klassen nach der Kompilierung?

Ich frage mich ob der kompilierte Bytecode sich unterscheidet wenn ich entweder viele Klassen z.b java.lang.System.in, importiere oder stattdessen jedesmal den Pfad mit angebe also z.b new Scanner(System.in) statt new Scanner(in).

Gibt es nach der Kompilierung überhaupt noch einen Unterschied oder dient der import nur der Übersichtlichkeit?

Guten Tag,

für kurze Programme kann es sinnvoll sein, einzelne Objekte zu importieren. Oder in GUI-Klassen exakt die genutzten GUI-Komponenten. Für längeren Code ist aber zu beachten, dass längere Namen wie „System.in“ die Lesbarkeit wieder erhöhen, da der Namensraum direkt mit dabei steht und „in“ alleine wie auch andere kurze Variablennamen mehrdeutig sein können. Das ist ok für lokale Blöcke, aber eher nicht für übergreifend genutzte Variablen.

Es hängt also von der Situation ab, aber generell würde ich von zu detaillierten Imports abraten.

Gruß, Lutz

Moin,

soweit ich das verstanden habe, dient der Import nur der Vereinfachung bei der Entwicklung. Ich glaube nicht, dass das Einfluß auf den compilierten Code hat. Die Methoden-Aufrufe sind ja nur Referenzen auf Methoden in anderen JAR-Dateien. Das sollte der Compiler so optimieren, dass es keinen Unterschied macht.

Gruß
TH

Auf den Bytecode (also .class Files) sollte es keinen Einfluß haben, ob man ganze Pakete oder einzelne Klassen importiert.

Ich bevorzuge einzelne Klassen zu importieren, was keine Mehrarbeit ist, wenn man eine IDE, wie z.B. Eclipse, verwendet. Auch stören die vielen import-Zeilen nicht, da man sie zu einer Zeile zusammenklappen kann.

Der Vorteil des Importierens aller Klassen einzeln, ist, daß man bei Bedarf durch einen Blick in die liste der Import-Zeilen sehen kann, welche Klassen verwendet werden. (Eclipse kann auch alle Imports entfernen, die gar nicht verwendet werden).

Hoffe dise Antwort hilft Dir weiter.

Folke