Unterschied zwischen der Verwendung eines vollständig qualifizierten Namens und dem Import in Java

7

Gibt es Unterschiede bei der Verwendung eines "Inline-Imports" (ein vollständig qualifizierter Name) und des normalen Imports in Bezug auf Leistung, Arbeitsspeicher, Kompilierzeit usw. in Java?

%Vor%

und

%Vor%     
uguurozkan 06.10.2015, 09:09
quelle

6 Antworten

9

Die Hauptsache, auf die Sie sich konzentrieren sollten, ist Lesbarkeit. Ich finde den zweiten besser lesbar.

In seltenen Fällen bevorzuge ich den zweiten Ansatz. Betrachten wir das folgende Szenario: Aus irgendeinem Grund schrieb ich eine Klasse und nannte sie File . Ich tippte File file = new File(...) und meine IDE importierte das java.io.File für mich automatisch. Aber ich will diese Art von Objekt nicht, ich möchte meine File -Klasse. Anstatt also die richtige Klasse zu importieren, bevorzuge ich den Inline-Import, nur dass andere Benutzer nicht mit der File -Klasse von Java verwechselt werden.

In Bezug auf die Leistung sind sie genau gleich, und hier ist der Beweis -

Dies ist der Bytecode, der für das erste Snippet generiert wurde:

%Vor%

Dies ist der Bytecode für die Sekunde:

%Vor%     
Maroun 06.10.2015, 09:19
quelle
4

Nein, beide sind in Bezug auf Leistung, Speicher und Kompilierzeit identisch. Der einzige Unterschied zwischen ihnen besteht darin, dass der normale Import Ihre Tipparbeit spart und es lesbarer ist. "

    
proudandhonour 06.10.2015 09:11
quelle
3

Es spielt nur im folgenden Fall eine Rolle,

Wenn Sie eine Klasse verwenden möchten, die in mehreren Paketen verfügbar ist. Die Date-Klasse ist in java.util & amp; java.sql

Sie können eine der obigen Klassen am Anfang des Programms importieren und die qualifizierte Syntax für eine andere verwenden.

    
Ashish Bhosle 06.10.2015 10:51
quelle
2

Nein, dies würde die Leistung Ihres Codes nicht beeinträchtigen. Importanweisungen machen Ihren Code lesbarer, weil Sie nicht Ihren gesamten Paketnamen schreiben. Aber manchmal haben Sie einen Konflikt von ClassNames, dann ist es ratsam, qualifizierte Namen zu verwenden.

    
Pracede 06.10.2015 09:16
quelle
2

Wenn Sie Klassen des gleichen Namens in eine Klasse importieren, können Sie explizit angeben, welche Klasse wo verwendet werden soll (vollständiger Klassenname):

%Vor%     
Stefan 06.10.2015 09:14
quelle
1

In Java werden Klassen immer mit ihrem voll qualifizierten Namen im endgültigen Bytecode referenziert. Es passiert das erste Mal, wenn ein Objekt der Klasse erstellt wird (oder auf ein statisches Mitglied der Klasse zugegriffen wird).

Das heißt, import wird vom Compiler verwendet, um auf Klassen mit ihrem unqualifizierten Namen zuzugreifen ( MyClass anstelle von mypackage.MyClass ).

Es gibt also einen Unterschied zwischen dem Importieren der Klasse oder dem expliziten Schreiben des vollständig qualifizierten Namens - es ist nur eine Frage der Lesbarkeit, spart ein wenig Tipparbeit und hilft Konflikte zwischen Klassen mit demselben Namen zu vermeiden.

    
vtor 06.10.2015 09:22
quelle

Tags und Links