char c = '\u0000';
当我打印
c
时,它在命令行窗口中显示“a”。
那么
char
类型字段的默认值是多少?
有人说
'\u0000'
在Unicode中表示null;是这样吗?
char
属性的默认值确实是 '\u0000'
(空字符),如 Java 语言规范第 §4.12.5 变量初始值 部分所述。
在我的系统中,
System.out.println('\u0000');
行打印出一个小正方形,这意味着它不是可打印的字符 - 正如预期的那样。
'\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。
Character 的默认值为 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”。请参阅此处了解更多信息。
\u0000
是Java中char类型的默认值
正如其他人提到的,您可以使用比较来检查未初始化变量的值。
char ch;
if(ch==0) {
System.out.println("Default value is the null character");
}
默认 char 是 int 值为 0(零)的字符。
char NULLCHAR = (char) 0;
char NULLCHAR = ' ';
根据下面的证明,它很诱人,可以说是空格或整数 0
char c1 = '\u0000';
System.out.println("*"+c1+"*");
System.out.println((int)c1);
但我不会这么说,因为不同的平台或将来可能会有所不同。我真正关心的是我永远不会使用这个默认值,所以在使用任何字符之前只需检查它是否为 \u0000 ,然后使用它来避免程序中的误解。就这么简单。
char 数据类型的默认值为“\u0000”(或 0),最大值为“\uffff”(或 65,535(含))。
您可以在这里查看信息。
请注意,零和零之间存在明显的区别。 在 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html(上面引用)中,做出了以下声明:-
还有一个特殊的空文字,可以用作任何引用类型的值。 null 可以分配给任何变量,除了基本类型的变量。除了测试它是否存在之外,您对空值几乎无能为力。因此,在程序中经常使用 null 作为标记来指示某个对象不可用。
这就是为什么以下语句会给你一个错误,而不是其他语句:-
char a = null; //类型不匹配:无法从 null 转换为 char。
字符 b = 0; //有效语法。
我认为是
'\u00000'
或者只是''
而不是'\u0000'
(第一个有 5 个零,最后一个有四个零。)
char
的默认值为 \u0000
public class DefaultValues {
char varChar;
public static void main(String...l)
{
DefaultValues ob =new DefaultValues();
System.out.println(ob.varChar=='\u0000');
}
}
这将返回 true
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();
} }
注意:输出为空。
如 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);
}
}