# instanceof und null



## siba (2. Jun 2006)

Warum erhalte bei untenstehendem Code zweimal false als Ergebnis? Was ist null?
Seither dachte ich immer null ist ein Objekt?


```
public static void main(String[] args) {
		String s = null;
		System.out.println(s instanceof String);
		System.out.println(s instanceof Object);
	}
```


----------



## byte (2. Jun 2006)

null ist null

nada
nix
niente
NIL


----------



## The_S (2. Jun 2006)

null is nix, leer wenn man so will.


----------



## siba (2. Jun 2006)

nix, ist aber nicht viel  :lol:


----------



## L-ectron-X (2. Jun 2006)

Du bekommst false als Ergebnis, weil du nur eine Referenz (s) auf ein Objekt vom Typ String hast. Die Referenz zeigt aber noch nicht auf ein Objekt dieses Typs. Das geschieht erst nach Instanziierung bzw. Wertzuweisung.

In deinem Fall zeigt s weder auf eine Instanz (Objekt) von String noch von Object sondern _nirgendwo hin_, weil du nur eine Referenz und kein konkretes Objekt hast.


----------



## siba (2. Jun 2006)

Und ich dachte String s = null; sei eine konkrete Wertzuweisung?
Aber so wie es aussieht, wird an dieser Stelle noch kein Objekt
erstellt?


----------



## L-ectron-X (2. Jun 2006)

null hat keinen Wert, demzufolge kann man auch nicht von einer Wertzuweisung sprechen.
Wie schon gesagt, null zeigt nirgendwo hin.

Ein String-Objekt wird entweder so
	
	
	
	





```
String s = "Hello World!";
```
oder so
	
	
	
	





```
String s = new String("Hello World!");
```
 erzeugt.
Wobei die erste Variante vorzuziehen ist.

Noch was zum Lesen: http://www.galileocomputing.de/openbook/javainsel4/javainsel_03_004.htm


----------



## siba (2. Jun 2006)

OK! Ich werde mir merken, daß null kein Wert ist! Vielen Dank!


----------

