char类型的默认数值

目录

前言

char的默认数值

Unicode是什么?

 ASCII是什么?

Unicode与ASCII区别

总结


前言

基本数据类型都有自己的默认数值,但是char的默认数值比较的奇怪,下面我来说明一下char的默认数值

char的默认数值

话不多说,直接上代码

public class Dem01 {
    public static void main(String[] args) {
        char[] arr = new char[5];
        for (int i = 0; i < arr.length; i++) {
            arr[i] =  0;
            System.out.println("----------"  + arr[i] + "*****");
        }
        if (arr[0] == 0){
            System.out.println("你好");
        }
        System.out.println("*******");
    }
}

输出结果

看到这里大家就开始纳闷了,为什么上面输出没有0,为什么下面的判断可以通过呢?直接断点Debug看看他的默认值

这里可以看出他的默认值是‘\u0000’与0,这就可以解释为什么那个判断可以通过了,这时候又有小伙伴纳闷了‘\u0000’是什么?是ASCII值?还是?其实是Unicode码的字符,每一个'\u0000'都代表了一个空格,下面来解释一下什么是Unicode码 与ASCII

Unicode是什么?

Unicode 又被称为“万国码”、“单一码”,是一种由字符集和编码方案组成的计算机领域的标准规范。Unicode旨在克服常规的文字压缩方式的不足,针对不同语言、不同平台的文字转换和处理要求,采用了一种通用的二进制代码。

实际上Unicode标准也就是我们经常说的“Unicode编码系统”,主要可以分为编码方式和实现方式两个层次。

在Unicode中用数字0-0x10FFFF来映射字符,最多可以容纳1114112个字符,也就是1114112个码位。在Unicode中,我们使用的汉字“字”所对应的数字是23383。

表示一个 Unicode的字符时,经常使用“U+”的形式,随后是一个十六进制的数字来表示

 ASCII是什么?

ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。其中最后一位用于奇偶校验。

Unicode与ASCII区别

ASCII编码是1个字节,而Unicode编码通常是2个字节。
字母A用ASCII编码是十进制的65,二进制的01000001;而在Unicode中,只需要在前面补0,即为:00000000 01000001。

总结

以上描述来看char的默认值为两个一个是‘\u0000’还有一个是0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值