理解Java中的null和'\ u000'之间的区别

ash*_*thi 36 java null char

我在书上读到(由Bruce Eckel的,第4版,第47页在Java编程思想),null等于'\u000'.然后我想知道究竟是'\u000'什么意思.

根据我的理解,null无关紧要或没有任何东西.并且'\u000'与此定义相矛盾.

任何人都可以澄清这个问题null,并'\u000'

wal*_*.ar 21

语言规范是定义null的地方,它说

还有一个特殊的null类型,表达式的类型为null,没有名称.由于null类型没有名称,因此无法声明null类型的变量或转换为null类型.空引用是null类型表达式的唯一可能值.null引用始终可以强制转换为任何引用类型.实际上,程序员可以忽略null类型,只是假装null只是一个可以是任何引用类型的特殊文字. - 文档链接(第4.1节)

null类型有一个值,null引用,由文字null表示,由ASCII字符组成.null文字始终为null类型. - 文档链接(第2.3节)

而是一个圆形的声音定义,但其值null空引用本身 - 只是另一个指针.空引用的值并不是真正相关的,并且可能取决于实现者,但可能是零或某些其他不能与另一个对象地址混淆的值.

这里可能会引起混淆,因为有一个名为null字符值的字符\u0000.这是char类型的默认值.


Rid*_*lly 11

\u000将是ASCII代码为0的字符的unicode表示,但与nullJava使用的无关.


Ros*_*ssC 8

'\ u0000'十进制等效值为00 Char等效值为NUL.

来自Javadoc中的Character:http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Character.html

static char MIN_VALUE 
      The constant value of this field is the smallest value of type char, '\u0000'. 
Run Code Online (Sandbox Code Playgroud)

这是unicode值,在CHAR中等效于NULL,即它是NULL CHARACTER,而不是文字NULL.