Wenn
zahl = 32912;
ausgeführt wird, wird nichts Neues erzeugt.
Ein Muster, das 32912 repräsentiert, wird in den Bits von zahl
gespeichert.
Beachtet, dass es zwischen diesen zwei Anweisungen einen grundsätzlichen Unterschied gibt:
zahl = 32912;
und
str = new String( "Der Gingham Hund" );
In der ersten Anweisung ist zahl
ein primitiver Typ, also stellt die Zuweisungsanweisung die Daten direkt in die Variable hinein.
In der zweiten Anweisung ist str
eine Objektreferenzvariable (die einzige andere Möglichkeit),
also wird zuerst ein Objekt erzeugt und danach eine Referenz auf das Objekt in die Variable hineingestellt.
Es gibt nur primitive Variablen und Objektreferenzvariablen, und jede enthält eine bestimmte Art von Information:
Typ der Variablen | Information, die sie enthält | Wenn sie sich links vom "=" befindet |
---|---|---|
primitive Variable | Enthält die aktuellen Daten. | Vorherige Daten werden durch die neuen Daten ersetzt. |
Referenzvariable | Enthält Informationen darüber wie das Objekt zu finden ist. | Die alte Referenz wird durch die neue Referenz ersetzt. |
Wie können die beiden Arten von Variablen auseinandergehalten werden? Leicht — wir werfen einen Blick darauf, wie die Variable deklariert ist. Wenn sie nicht als primitiver Typ deklariert wurde, ist es eine Objektreferenzvariable. Eine Variable wird ihren deklarierten Typ nicht ändern.
Wie sind die folgenden Variablen deklariert? Wählt den richtigen Button.
Deklaration | Primitiv | Objektreferenz |
---|---|---|
int foo; | ||
String st; | ||
boolean flag; | ||
Object obj; |