2017-05-04 97 views
1
class CHar 
{ 
    public static void main(String []l) 
    { 
     char j='\u0000'; 
     System.out.println("value of char j="+j); 
    } 
} 

当我打印j的值然后它什么都不打印它意味着空值,但是java dic说默认值char是我同意的'\ u0000',但默认值应该是打印。而不是打印默认值它打印什么是java中char的实际默认值?

C:\Users\Mohit-Pc\Desktop\Java Array>java CHar 
value of char j= 

这是什么都不是空的。我仍然困惑,我是否使用CHAR默认值,而不是,null,则它会产生一个错误:

CHar.java:5: error: incompatible types: cannot be converted to char char j=null;

+0

零和null是两个非常不同的东西。你有一个原始类型,因此为零。并且打印零意味着没有为该变量打印任何内容。 – AntonH

+2

char \ u0000引用char NULL。所以它不能作为字符串打印。 – fandango

+0

“,但默认值应打印。” < - 你为什么这么想? –

回答

4

一个char与价值0就是空字符。这是一个non-printing字符,并不显示为任何内容。传统上,C风格的字符串使用NUL字符来标记字符串的末尾。

请注意,NUL字符不同于Java null。 NUL是原始值char值,而null是参考值。 char类型的值不能为null,但对象类型如java.lang.Character可以。

如果要打印数字的值char,首先将其投射到int