char c = '\u0000';
当我打印c时,它在命令行窗口中显示“a”。
那么char类型字段的默认值是什么?
有人说'\ u0000'在unicode中表示null;是吗?
答案 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 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);
}
}