字符类型

char类型的字面量可以是一个英文字母,字符或一个汉字,并且有单引号包括。

java底层使用一个2进制16位的整数来处理字符类型,该数值是一个字符的unicode编码值

注:在表示一个Unicode的字符时,通常会用“U+”然后紧接着一组十六进制的数字来表示这一个字符

做一个实验:

用工具把一个汉字转成unicode编码(偷懒一下)

把汉字“李”转换得到u674e,去掉前缀u得到674e,这是一个16进制的,再用工具再把它转成2进制

转成2进制得到110011101001110,数了一下是15位,应该是16位,因为第一位符号位0被省略了。

这就验证了前面的那句话,java底层使用一个2进制16位的整数来处理字符类型

ps:一个字符等于两个字节,一个字节8位,char类型有16位,所有占两个字符

一个汉字为一个字符,一个char类型可以装下两个汉字,面试的时候最喜欢问这个。

拓展:使用java代码打印出1-160的unicode对应字符

public static void main(String[] args) {
        for (int i = 0; i <=160; i++) {
            System.out.println((char)i);
        }
    }
原文地址:https://www.cnblogs.com/sflik/p/4420773.html