Was ist das Schlüsselwort "null" wirklich??
-
Hi!
Ich habe bis jetzt nirgendswo detailierte Informationen über das Schlüsselwort null bekommen.
Ist das Schlüsselwort null ein 0 im Speicher oder wie sieht null im Speicher aus?
Danke
-
Java soll es dir eigentlich ersparen, über die genauen Adressen irgendwelcher Referenzen nachzudenken (eigentlich soll das auch schon C++!). Ob eine null-Referenz nun tatsächlich auf 0 zeigt, oder auf 42, oder auf 0xdeadbeef ... who cares?
-
Das heisst einfach nur "nix".
Es zeigt auf eine bestimmte Adresse im Speicher und wird immer als "nichts" oder "leer" oder "garnix" oder.... interpretiert.basedow
-
Danke
-
*wegedit*
huch, is ja java, ich glaub ich brauch nen kaffee
-
"null" ist in Java kein Schlüsselwort.
-
Sondern? Als Identifier kann ichs jedenfalls nicht verwenden.
-
Es ist ein Literal. Genau wie true und false. Es steht eigentlich explizit bei fast jeder Auflistung von Java-Schlüsselwörtern dabei, dass diese 3 keine Schlüsselwörter sind. "Reservierte Wörter" sind sie aber. Naja, ich weiß aber auch nicht genau, wie "Schlüsselwort" definiert ist.
-
Ich hatte Schlüsselwort und reserviertes Wort bisher immer für Synonyme gehalten.
-
Kann ich nachvollziehen. Mir ist auch nicht ganz klar, warum das hier unterschieden wird. Ich sehe zwar, dass sich true, false und null von den Schlüsselwörtern unterscheiden, da es halt Literale sind, ich sehe aber nicht, was ein Schlüsselwort ausmacht. Warum sind zum Beispiel "goto" und "const" in Java Schlüsselwörter? Diese beiden Wörter haben garkeine Bedeutung, außer dass man sie nicht verwenden darf. Warum sagt man hier nicht auch, dass es nur "reservierte Wörter" sind?
EDIT: Die Sprachspezifikation von Java kennt übrigens keine "reservierten Wörter". Ich hatte das von einer anderen Seite, kann also sein, dass diese Unterscheidung tatsächlich Unsinn ist. Aber auch bei der Sprachspezifikation sind true, false, null keine Schlüsselwörter, sondern eben Literale.
http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#229308
-
Weil dann ein neuer Begriff definiert werden müsste?
Schlüsselwort ist ein von der Sprache verwendeter Bezeichner, die keine Litherale sind. Sonst müsste 2, 5, 33.123, .. je ebenfalls in die Schlüsselwortliste aufgenommen werden.