java中char类型的默认值到底是什么?
直接po代码和截图
public class TestJavaDataType {
//字符型
char flag;
//布尔型
boolean sex;
/*数值型*/
//整数类型
byte number;
short age;
int workYears;
long money;
//浮点类型(小数类型)
float score;
double income;
public static void main(String[] args) {
TestJavaDataType testJavaDataType = new TestJavaDataType();
testJavaDataType.printJavaDataDefaultValue();
}
//打印java中8个基本数据类型的默认值
public void printJavaDataDefaultValue() {
System.out.println("**********打印java中8个基本数据类型的默认值**********");
System.out.println("char / flag = " + flag);
System.out.println("boolean / sex = " + sex);
System.out.println("byte / number = " + number);
System.out.println("short / age = " + age);
System.out.println("int / workYears = " + workYears);
System.out.println("long / money = " + money);
System.out.println("float / score = " + score);
System.out.println("double / income = " + income);
System.out.println("**********打印java中8个基本数据类型的默认值**********");
}
}
char类型的默认值是'\u0000',表示每个二进制位都为0的Unicode字符。至于为何显示为一个框,和你的编码有关。
char的默认值是'\u0000',证明:
private char c;
System.out.println(c == '\u0000'),结果为true
char类型的默认值是\u0000 即空值
二进制上的0,基本类型的初始化默认值都是这个,char有16位,即16位0,当然不同基本类型默认值表示的实际值有区别
har类型的默认值是\u0000,表示每个二进制位都为0的Unicode字符。应该是16位吧,\u是类型
编译器默认的值,在转换char找不到这个字符,所以才会出现这个字符乱码