char的默认值是多少?

问题描述 投票:0回答:14
char c = '\u0000';

当我打印

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

那么

char
类型字段的默认值是多少?

有人说

'\u0000'
在Unicode中表示null;是这样吗?

java char
14个回答
121
投票

char
属性的默认值确实是
'\u0000'
(空字符),如 Java 语言规范第 §4.12.5 变量初始值 部分所述。

在我的系统中,

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


32
投票

'\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


12
投票

Character 的默认值为 Character.MIN_VALUE,内部表示为

MIN_VALUE = '\u0000'

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

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

}

6
投票

'\u0000'
代表
null
。因此,如果您打印未初始化的 char 变量,您将一无所获。


3
投票

是“\u0000”。请参阅此处了解更多信息


1
投票

\u0000
是Java中char类型的默认值

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

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

0
投票

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

char NULLCHAR = (char) 0;

char NULLCHAR = ' ';


0
投票

根据下面的证明,它很诱人,可以说是空格或整数 0

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

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


0
投票

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

您可以在这里查看信息。


0
投票

请注意,零和零之间存在明显的区别。 在 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html(上面引用)中,做出了以下声明:-

还有一个特殊的空文字,可以用作任何引用类型的值。 null 可以分配给任何变量,除了基本类型的变量。除了测试它是否存在之外,您对空值几乎无能为力。因此,在程序中经常使用 null 作为标记来指示某个对象不可用。

这就是为什么以下语句会给你一个错误,而不是其他语句:-

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

字符 b = 0; //有效语法。


-1
投票

我认为是

'\u00000'
或者只是
''
而不是
'\u0000'
(第一个有 5 个零,最后一个有四个零。)


-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


-1
投票

char 的默认值为 null,根据 Unicode 图表 为 '\u0000'。让我们看看打印时它是如何工作的。

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();   
    } }

注意:输出为空。


-2
投票

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

'u0000' 的缩写是 ' ',所以 null 可以用 'u0000' 或 ' ' 来表示。

下面的 Java 程序使用实例 char 字段“c”验证 null 表示。



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);
    }

}

© www.soinside.com 2019 - 2024. All rights reserved.