この記事の研究では、主に以下で詳述するように、Javaのnull "Type"の関連例が含まれています。
まず、ヌルの議論を引き起こす簡単なヌル関連の質問をします。その後、公式言語マニュアルに従ってnull "タイプ」を解釈します。
質問:次のプログラムは正しく実行できますか?
分析:
出力は次のとおりです
nullは任意のクラスタイプに強制される可能性があるため、以前の((null)null)は合法ですが、nullが回転を余儀なくされた後、それは無効なオブジェクトであり、その返品値はnullです(後で説明します)
HAHAメソッドは静的な方法です。静的メソッドは静的結合を使用し、nullポインターの例外をスローしません。
haha()関数が非静的になった場合、nullポインターの例外がスローされます。
別の例を取りましょう:
この質問は、実際には上記に似ています。
結果はまだ「ハハ」を出力しています
Java言語仕様で見ることができます
セクション4.1で。言及されている種類と価値の種類:
Javaプログラミング言語には、プリミティブタイプ(§4.2)と参照タイプ(§4.3)の2種類のタイプがあります。 」
タイプ:
PrimitiveType
参照タイプ
また、名前のない式null(§3.10.7、§15.8.1)のタイプである特別なヌルタイプもあります。
ヌルタイプには名前がないため、nullタイプの変数を宣言したり、nullタイプにキャストすることは不可能です。
ヌル参照は、nullタイプの式の唯一の可能な値です。
null参照は、任意の参照タイプへの拡大参照変換を常に受けることができます。
実際には、プログラマーはnullタイプを無視し、Nullがあらゆる参照タイプの特別な文字通りであると考えているだけです。
のために翻訳します:
Java言語には2つのタイプがあり、1つは基本タイプ、もう1つは参照タイプです。
また、特別なヌルタイプ、つまり、名前のない式nullのタイプもあります。
ヌルタイプには名前がないため、nullタイプの変数を宣言したり、nullタイプに変換することは不可能です。
ヌル参照は、null型式の唯一の可能な値です。
NULL参照は、任意の参照タイプに変換できます。
実際、プログラマーはnullタイプを無視することができ、nullはあらゆる参照タイプになることができる特別なシンボルであると考えることができます。
この一節を読んだ後、私は突然気づきました。
5.2で。割り当て変換セクション:
「nullタイプの値(ヌル参照は唯一の値です)は、そのタイプのヌル参照をもたらす任意の参照タイプに割り当てられます」
nullタイプ(null(null)参照の値は、このタイプの唯一の値です)を任意の型に割り当てることができ、そのタイプのオブジェクト(実際にはnull)への空の参照を返します。
5.3で。メソッドの呼び出し変換セクション、次のとおりです。
「NULLタイプの値(NULL参照は唯一の値です)は、任意の参照タイプに変換される場合があります。」
つまり、「ヌルは任意の参照タイプに変換できます。」
公用語マニュアルを通して、ヌルタイプを非常に深く理解しています。
これは、プログラミングと将来の就職のインタビューに役立ちます。
最後に、誰もが奇妙な問題に遭遇することを願っています。 Baiduに加えて、Stack Overflow Webサイトで可能な限り検索し、公式マニュアルを確認してください。
要約します
上記は、Javaにおけるこの記事のnull "タイプ」についての詳細な理解についてのすべてであり、すべての人に役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!