字符类型

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

 

posted @ 2015-04-12 21:53  sflik  阅读(273)  评论(0编辑  收藏  举报