char c = '\u0000';
Run Code Online (Sandbox Code Playgroud)
当我打印c时,它在命令行窗口中显示"a".
那么char类型字段的默认值是什么?
有人说'\ u0000'在unicode中表示无效; 是对的吗?
Ósc*_*pez 96
char属性的默认值确实是'\u0000'(空字符),如Java语言规范,第4.12.5节"变量的初始值"一节中所述.
在我的系统中,该行System.out.println('\u0000');打印一个小方块,这意味着它不是可打印的字符 - 正如预期的那样.
Cha*_*har 28
'\ 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);
}
}
Run Code Online (Sandbox Code Playgroud)
此代码将在最后一次打印时打印为true.
Character的默认值是Character.MIN_VALUE,内部表示为MIN_VALUE = '\u0000'
此外,您可以检查字符字段是否包含默认值
Character DEFAULT_CHAR = new Character(Character.MIN_VALUE);
if (DEFAULT_CHAR.compareTo((Character) value) == 0)
{
}
Run Code Online (Sandbox Code Playgroud)
'\u0000'代表null.因此,如果您打印一个未初始化的char变量,您将什么也得不到.
| 归档时间: |
|
| 查看次数: |
144332 次 |
| 最近记录: |