# was bedeutet null



## javakaba (23. Feb 2006)

Hallo,
ich habe schon oft in Codes gelesen: 

```
if(abc != null)
```
aber was bedeutet das?


----------



## SamHotte (23. Feb 2006)

Damit prüft man, ob abc schon instantiiert ist; ansonsten gäb's eine NullPointerException, falls man auf bspw. abc.toString() zugreifen wollte.


----------



## javakaba (23. Feb 2006)

und was bedeutet das :shock:  :shock:


----------



## mcvit (23. Feb 2006)

noch einfacher ausgedrückt, die variabel ist anglelegt worden, aber noch kein wert zugewiesen.


im gegensatz zu manch anderen programmiersprachen setzt java automatisch einen quasi wert ein um eventuelle fehler zu erkennen. (nullpointerexception)



zusatzinfo
andere programmiersprachen (zb c++) setzen irgendeinen wert ein, der gerade im hauptspeicher, dort wo die variable gespeichert wird, steht. -> kann schlimme fehler erzeugen, da wenn man zb das wertzuweisen vergisst und dann datensätze aus einer Datenbank löscht, man irgendeineinen datensatz erwischt.


----------



## byte (23. Feb 2006)

Also um jetzt mal Mißverständnissen vorzubeugen: Man muss dabei zwischen primitiven und abstrakten Datentypen unterscheiden. Primitive Datentypen (z.B. int, float, ...) sind schon per Default initialisiert. Abstrakte Datentypen sind per Fault null, bis ich sie initalisiere. Also z.B.:


```
File a;   //noch ist a null
System.out.println(a.getName());   //Fehler
a = new File(test.txt);   //jetzt ist a ein konkretes objekt
System.out.println(a.getName());   //kein Fehler
```


----------



## mcvit (23. Feb 2006)

also ich hab die erfahrung gemacht, dass auch die primitiven datentypen auf in java auf null gesetzt werden


hier ein bsp.

wenn mann einen nicht sehr strengen compiler hat, lässt sich das sogar ohne fehlermeldung ausführen
(ich kann beruhigen, mein standardeditor lästs nicht ausführen, musste eine uraltversion von editplus starten)



und die ausgabe sieht dann wiefolgt aus

1 fenster:     in i steht momentan null

2 fenster:     in i steht momentan 1



```
import javax.swing.*;

public class Nulltest {
    
    /** Creates a new instance of nulltest */
    public Nulltest() {
    }
    
    public static void main(String args[])
    { int i;
      
      JOptionPane.showMessageDialog(null, "In i steht momentan " + i, "NULLTEST", JOptionPane.INFORMATION_MESSAGE ); 
      
      i = 1;
      
      JOptionPane.showMessageDialog(null, "In i steht momentan " + i, "NULLTEST", JOptionPane.INFORMATION_MESSAGE ); 
      
         
    }
    
}
```


----------



## Roar (23. Feb 2006)

null ist soviel wie nix, leer, nada, void, nil, alle, nix da, null

@mcvit: 0 != null. primitive datentypen können nicht null sein.


----------



## lin (23. Feb 2006)

http://www.java-forum.org/de/viewtopic.php?t=27772&highlight=


----------

