java中char类型的默认值到底是什么?

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找不到这个字符,所以才会出现这个字符乱码