1. ホーム
  2. java

[解決済み】Javaでnullと'˶'˶'ᴗ'の違いを理解する

2022-02-07 20:35:39

質問

ある本で読みました (ブルース・エッケル著『Thinking in Java』第4版、47ページ)。 その null と同じです。 '\u000' . で、具体的にどうなのかというと '\u000' は本当に意味があるのだろうか。

私の理解では、nullは何もない、あるいは何もない状態です。そして '\u000' は、この定義と矛盾している。

について、この問題を明確にできる人はいますか? null'\u000' ?

解決方法は?

言語仕様書にはnullが定義されているところで、次のように書かれています。

また、特殊なnull型として、nullという式の型があり、これは名前を持ちません。null 型には名前がないので、null 型の変数を宣言することも、null 型にキャストすることも不可能です。NULL参照は、NULL型の式が取り得る唯一の値です。NULL参照は、常に任意の参照型にキャストすることができます。実際には、プログラマはnull型を無視して、nullは単にどの参照型にもなり得る特別なリテラルであるということにしておけばよいのです。 --ドキュメントへのリンク (4.1節)

そして

null型は1つの値、つまりASCII文字から形成されるnullというリテラルで表されるnull参照を持っています。NULLリテラルは常にNULL型です。 --ドキュメントへのリンク (2.3節)

むしろ循環的な響きを持つ定義ですが、その値は null ヌル参照 そのもの、つまり単なるポインタです。null参照の値はあまり関係なく、実装者次第だと思われますが、ゼロや他のオブジェクトのアドレスと混同されないような他の値が考えられます。

という文字値があるため、ここで混乱が生じる可能性があります。 ヌル文字 という値で \u0000 . これは char 型のデフォルト値です。