char c = '\u0000';
当我打印c
时,命令行窗口中会显示'a'。
那么char
类型字段的默认值是什么?
有人说'\u0000'
在Unicode中表示null,这是正确的吗?
char
属性的默认值确实是Java语言规范中所述的'\u0000'
(空字符),详见第§4.12.5 变量的初始值节。
在我的系统中,System.out.println('\u0000');
这行代码会输出一个小方块,表示它不是可打印字符——这是预期的结果。
'\u0000'
不等于 null
。 - Edd空字符
是什么? 这个问题的一些答案将默认值称为空字符。 - Quazi Irfannull
,即\u0000 == null
会返回false
。 - Edd'\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);
}
}
\u0000
。
如果使用Character.getNumericValue
将默认字符转换为数字,则会返回-1。
为了扩展答案中的代码,这两个语句都将打印-1 System.out.println(Character.getNumericValue(c1));```
- walv字符的默认值是Character.MIN_VALUE,在内部表示为MIN_VALUE = '\u0000'
此外,您可以检查字符字段是否包含默认值。
Character DEFAULT_CHAR = new Character(Character.MIN_VALUE);
if (DEFAULT_CHAR.compareTo((Character) value) == 0)
{
}
'\u0000'
代表null
。因此,如果您打印未初始化的char变量,您将得到空值。
\u0000
是 Java 中 char 类型的默认值。
正如其他人提到的,您可以使用比较来检查未初始化变量的值。
char ch;
if(ch==0)
System.out.println("Default value is the null character");
默认字符是具有整数值0(零)的字符。
char NULLCHAR =(char)0;
char NULLCHAR ='\0';
char 数据类型的默认值为 '\u0000'(或 0),最大值为 '\uffff'(或 65,535,包括)。
您可以在 这里 查看相关信息。
很诱人地说,根据以下证明,将空格或整数0视为白色空间。
char c1 = '\u0000';
System.out.println("*"+c1+"*");
System.out.println((int)c1);
但我不会这么说,因为它可能在不同的平台或未来有所不同。我真正关心的是我永远不会使用这个默认值,在使用任何字符之前,只需检查它是否为\u0000,然后使用它以避免程序中的误解。就这么简单。
char == 0
。 - ACV