NULL
这个单词时感到疯狂。突然有一天我想到,在Java中我已经敲了多年的 null
(小写)。现在我突然开始编写C++,这个小小的肌肉记忆碎片让我感到疯狂。Wikiperipatetic 将 C ++ 的 NULL 定义为 stddef 的一部分:
Sun 的文档告诉我关于 Java 的“ null 字面值”:一个宏展开成一个空指针常量。它可以被定义为 ((void*)0),0或0L,具体取决于编译器和语言。
所以这一切都很好。我知道什么是空指针引用,感谢编译器笔记。现在我对 Java 中的字面值有点模糊,因此我继续阅读……空类型只有一个值:空引用,由文字表示形式 null 表示,该文字由 ASCII 字符形成。空字面值始终是空类型。
好了,我想我现在明白了。在 C++ 中,NULL 是一个宏,在编译时计算为 null 指针常量。在 Java 中,null 是一个固定值,任何非基本类型都可以赋值;用于方便地在字面值是固定值的源代码表示形式。文字直接在您的代码中表示,无需计算。
还有一个特殊的空字面值,可以用作任何引用类型的值。空可以分配给任何变量,除了基本类型变量。除了测试其存在之外,你几乎无法对空值做任何事情。因此,在程序中经常使用 null 作为标记,表示某个对象不可用。
if 语句
中进行测试。Java没有指针,所以我可以理解为什么他们保持null是一个简单的值而不是什么花哨的东西。但是为什么java决定将所有大写字母的NULL更改为小写字母的null?
此外,我有没有漏掉什么?