# null und primitive Datentypen



## Herr Kaiser (13. Jan 2011)

Hallo Forum, 
hier fragt mal wieder ein Anfänger:
Einer Objektvariablen kann ich den Wert "null" zuweisen. Bei primitiven Datentypen geht das offensichtlich nicht. Gibt es hierfür ein  eigenes Schlüsselwort oder geht das gar prinzipiell überhaupt nicht und ich müsste für solche Fälle bspw. mit Float statt mit float arbeiten? ...
Danke für eure Hilfestellung!


----------



## bone2 (13. Jan 2011)

das geht prinzipiell nicht.

wenn ein integer 0 ist, ist er einfach 0
wenn ein Objekt 0 ist, dann ist es null, weil 0 keine gültige Referenz auf eine stelle im speicher ist. er kann nicht finden was da dranhängt


----------



## Landei (13. Jan 2011)

Geht nicht, gibts nicht, ja, du kannst stattdessen Wrapper-Objekte wie Float verwenden, was dann regelmäßige Probleme beim Unboxing verursacht, etwa

```
Integer i1 = null;
int i2 = i1; //BUMM
```


----------



## ARadauer (13. Jan 2011)

Kann nicht gehen... was soll null den sein? 0? Nein!!
null ist nicht definiert
0 ist die Zahl zwischen -1 und 1

das ist was ganz anderes...


----------



## Herr Kaiser (13. Jan 2011)

Ah, I see. Danke für die Antworten! 
Dann gibt es auch keine Möglichkeiten, herauszufinden, ob eine Variable eines primitiven Datentyps zwar schon deklariert, aber noch nicht initialisiert wurde? ...


----------



## xehpuk (13. Jan 2011)

Also bei lokalen Variablen gibt es einen Compiler-Fehler, wenn vor dem Gebrauch dieser nicht sicher ist, dass sie überhaupt initialisiert wurden. Beispiel:

```
public static void main(String[] args) {
	int a;
	int b = 0;
	if (b == 0) System.out.println(a);
}
```

AFAIK, ist das bei allen anderen Variablen (Klassen-, Instanz- etc.) nicht so, sondern sie werden mit den Defaults (0, false(, null)) initialisiert (Ausnahme: final, da gibts ebenfalls Gemecker).


----------



## Herr Kaiser (13. Jan 2011)

Prima. Jetzt seh ich klarer. Werde dann meine Fragestellung über Wrapper-Objekte realisieren. 
Vielen Dank für eure Hinweise!


----------

