Avatar ·

Was ist null/nil in Java und wie arbeitet man damit?

Hallo zusammen! Ich beschäftige mich mit den Grundlagen von Java und bin auf das Konzept null gestoßen. In einigen Sprachen (z.B. in SQL oder Go) bin ich an den Begriff nil gewöhnt. Verstehe ich richtig, dass es in Java kein nil gibt, sondern nur null verwendet wird? Und wenn ja, was ist das überhaupt – eine leere Referenz oder ein spezieller Wert?

Das Problem trat auf, als ich einen einfachen Code mit einer Klasse User schrieb und versuchte, eine Methode für ein Objekt aufzurufen, das ich nicht initialisiert hatte:

public class User {\n    String name;\n\n    void printName() {\n        System.out.println(name.length());\n    }\n\n    public static void main(String[] args) {\n        User user = null;\n        user.printName(); // Hier fliegt ein NullPointerException\n    }\n}\n

Ich erwartete, dass