Die Forschung in diesem Artikel beinhaltet hauptsächlich relevante Beispiele für NULL "Typ" in Java, wie unten beschrieben.
Geben Sie zunächst eine einfache Frage im Zusammenhang mit Null, die unsere Diskussion über NULL auslösen wird. Später interpretieren wir den Null -Typ "Typ" gemäß dem offiziellen Sprachhandbuch.
Frage: Kann das folgende Programm richtig laufen?
Analyse:
Die Ausgabe sollte sein: haha
Da Null zu jedem Klassentyp gezwungen werden kann, ist der vorherige ((null) null) legal, aber nachdem Null gezwungen ist, sich zu drehen, ist es ein ungültiges Objekt, und sein Rückgaberwert ist NULL (ich werde es später erklären)
Die Haha -Methode ist eine statische Methode. Die statische Methode verwendet die statische Bindung und wirft keine Nullzeiger -Ausnahme aus.
Wenn die Funktion haha () nicht statisch wird, wird eine Null-Zeiger-Ausnahme ausgelöst.
Nehmen wir ein weiteres Beispiel:
Diese Frage ähnelt tatsächlich dem oben genannten.
Das Ergebnis gibt immer noch "haha" aus
Wir können in der Java -Sprachspezifikation sehen
Im Abschnitt 4.1. Die genannten Arten von Typen und Werten:
Es gibt zwei Arten von Typen in der Java -Programmiersprache: primitive Typen (§4.2) und Referenztypen (§4.3). ”
Typ:
Primitivetyp
Referencetyp
Es gibt auch einen speziellen Null -Typ, den Typ des Ausdrucks null (§3.10.7, §15.8.1), der keinen Namen hat.
Da der Null -Typ keinen Namen hat, ist es unmöglich, eine Variable des NULL -Typs zu deklarieren oder den Null -Typ zu geben.
Die Nullreferenz ist der einzige mögliche Wert eines Ausdrucks des Null -Typs.
Die Null -Referenz kann immer eine Verbreiterungsreferenzumwandlung auf einen beliebigen Referenztyp unterziehen.
In der Praxis kann der Programmierer den Null -Typ ignorieren und so tun, als wäre Null nur ein spezielles wörtliches, das von jedem Referenztyp sein kann.
Ich werde es übersetzen für:
Es gibt zwei Typen in der Java -Sprache, einer ist der Grundtyp und der andere der Referenztyp .
Es gibt auch einen speziellen Null -Typ, dh die Art des Ausdrucks, der keinen Namen hat.
Da der Null -Typ keinen Namen hat, ist es unmöglich, eine Variable des NULL -Typs zu deklarieren oder sie in einen Null -Typ umzuwandeln.
Nullreferenz ist der einzige mögliche Wert eines Null -Typ -Ausdrucks.
NULL -Referenzen können in jeden Referenztyp konvertiert werden.
Tatsächlich können Programmierer den Null -Typ ignorieren und denken, dass Null nur ein spezielles Symbol ist, das zu einem beliebigen Referenztyp werden kann.
Nachdem ich diese Passage gelesen hatte, merkte ich plötzlich.
In der 5.2. Abschnitt zur Konvertierung von Zuweisungen:
"Ein Wert des NULL -Typs (die Nullreferenz ist der einzige solche Wert) kann jedem Referenztyp zugewiesen werden, was zu einer Nullreferenz dieses Typs führt"
Ein Wert eines NULL -Typs (NULL (NULL) -Referation ist der einzige Wert dieses Typs) kann jedem Typ zugewiesen werden und gibt eine leere Referenz auf ein Objekt dieses Typs zurück (eigentlich Null).
In 5.3. Der Abschnitt "Methode -Aufrufkonvertierung" gibt es:
"Ein Wert des Null -Typs (die Nullreferenz ist der einzige solchen Wert) kann in einen beliebigen Referenztyp konvertiert werden."
d.h. " Null kann in jeden Referenztyp konvertiert werden ."
Durch das offizielle Sprachhandbuch habe ich ein sehr tiefes Verständnis des Null -Typs.
Es ist eine gewisse Hilfe für unsere Programme und zukünftige Vorstellungsgespräche.
Schließlich hoffe ich, dass jeder auf einige seltsame Probleme stoßen wird. Versuchen Sie neben Baidu neben Baidu so weit wie möglich auf der Stapelüberlauf -Website und überprüfen Sie das offizielle Handbuch.
Zusammenfassen
Das Obige dreht sich alles um das ausführliche Verständnis dieses Artikels für Null-Typen in Java, und ich hoffe, dass es für alle hilfreich sein wird. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!