什么是char的默认值?

时间:2012-03-28 14:12:10

标签: java char

char c = '\u0000';

当我打印c时,它在命令行窗口中显示“a”。

那么char类型字段的默认值是什么?

有人说'\ u0000'在unicode中表示null;是吗?

14 个答案:

答案 0 :(得分:91)

char属性的默认值确实是'\u0000'(空字符),如Java语言规范部分§4.12.5 Initial Values of Variables 中所述。

在我的系统中,行System.out.println('\u0000');会打印一个小方块,这意味着它不是可打印的字符 - 正如预期的那样。

答案 1 :(得分:25)

'\ u0000'是字符的默认值。其十进制等值为0。

当你在没有初始化时声明一些char变量时,默认情况下会为它分配'\ u0000'。

请参阅此代码

public class Test {
    char c;

    public static void main(String args[]) throws Exception {
        Test t = new Test();
        char c1 = '\u0000';
        System.out.println(t.c);
        System.out.println(c1);
        System.out.println(t.c == c1);
    }
}

此代码将为最后一次打印打印 true

答案 2 :(得分:7)

Character的默认值为 Character.MIN_VALUE ,内部表示为MIN_VALUE = '\u0000'

此外,您可以检查字符字段是否包含默认值

Character DEFAULT_CHAR = new Character(Character.MIN_VALUE);
if (DEFAULT_CHAR.compareTo((Character) value) == 0)
{

}

答案 3 :(得分:6)

'\u0000'代表null。因此,如果你打印一个未初始化的char变量,你将什么也得不到。

答案 4 :(得分:3)

这是'\ u0000'。请参阅here for more information

答案 5 :(得分:0)

默认char是int值为0(零)的字符。

char NULLCHAR =(char)0;

char NULLCHAR ='\ 0';

答案 6 :(得分:0)

它的诱人说法是空白或整数0,如下面的证明

char c1 = '\u0000';
System.out.println("*"+c1+"*");
System.out.println((int)c1);

但我不会这样说,因为它可能会因为不同的平台或将来而有所不同。我真正关心的是我永远不会使用这个默认值,所以在使用任何char之前只需检查它是否是\ u0000,然后使用它来避免程序中的误解。就这么简单。

答案 7 :(得分:0)

char数据类型的默认值为'\ u0000'(或0),最大值为'\ uffff'(或65,535(含))。

您可以看到信息here

答案 8 :(得分:0)

请注意,null和零之间存在明显差异。 在http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html(上面引用)中,声明如下: -

还有一个特殊的null文字可以用作任何引用类型的值。 null可以分配给任何变量,但基本类型的变量除外。除了测试其存在之外,你几乎无法使用null值。因此,null通常在程序中用作标记,以指示某些对象不可用。

这就是为什么以下陈述会给你一个错误,而不是另一个: -

char a = null; //类型不匹配:无法从null转换为char。

char b = 0; //有效的语法。

答案 9 :(得分:0)

\u0000是Java

中char类型的默认值

正如其他人提到的,您可以使用比较来检查未初始化变量的值。

char ch;
if(ch==0)
    System.out.println("Default value is the null character");

答案 10 :(得分:-1)

我认为它是'\u00000'''而不是'\u0000' (第一个有5个零,而最后一个有四个零。)

答案 11 :(得分:-1)

char的默认值为 \ u0000

public class DefaultValues {
char varChar;
public static void main(String...l)
 {
    DefaultValues ob =new DefaultValues();
    System.out.println(ob.varChar=='\u0000');
 }  
}

这将返回 true

答案 12 :(得分:-1)

char的默认值为null,即' \ u0000'根据{{​​3}}。让我们看看它在打印时是如何工作的。

public class Test_Class {   
     char c;
     void printAll() {  
       System.out.println("c = " + c);
    }   
    public static void main(String[] args) {    
    Test_Class f = new Test_Class();    
    f.printAll();   
    } }

注意:输出为空白。

答案 13 :(得分:-2)

char语言规范的默认值是'\ u0000'(空字符),如Java语言规范中所述。

'u0000'的快捷方式是'\ 0',因此null可以用'u0000'或'\ 0'表示。

以下Java程序使用实例字段“c”验证空表示。

public class DefaultValueForchar {  
    char c;
    public static void main(String[] args) {
        char c0 = '\0';
        char cu0000 = '\u0000';
        DefaultValueForchar obj = new DefaultValueForchar();
        System.out.println(obj.c);
        System.out.println(c0);
        System.out.println(cu0000);
        System.out.println(c0==cu0000);
        System.out.println(obj.c==c0);
        System.out.println(obj.c==cu0000);
    }

}

public class DefaultValueForchar { char c; public static void main(String[] args) { char c0 = '\0'; char cu0000 = '\u0000'; DefaultValueForchar obj = new DefaultValueForchar(); System.out.println(obj.c); System.out.println(c0); System.out.println(cu0000); System.out.println(c0==cu0000); System.out.println(obj.c==c0); System.out.println(obj.c==cu0000); } }   output: