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); } }