char是基本类型数据,取值成为0-65535;
数字怎么代表字符呢?
美国人最先想出了了一套规则ASII码表,将美国人常用的字符,人为的进行排列,从0-128每位数字对应一个字符,说白了就是人为规定一个数值对应一个符号,比如a对应的数值就是97,A对应的数值是65,ASII码表的取值范围0-128
美国的这一套规则并没有包含世界上所有国家的字符,每个国家开始自己国家的字符对应数值的编码,所以出现了很多编码表.
但这样每个国家的互联网互相交互时,出现冲突.就好比中国设定数值100对应字符为'中',日本设定数值100对应字符为'日',两国互联网用户访问时,会发现浏览器接收到的数据会变成乱码,需要更换解码的规则,这样给互联网地球村带来困扰;
地球上管闲事的组织ISO出面说自己统一组织编写一套地球上所有的字符对应的数值的编码表(unicode) ,
常用的汉字在此表中对应的数值范围一万九到四万多, 这时候重点来了,char的取值范围是0-65535,所以在unicode的编码规则下是可以表示汉字的
简单点回答就是在unicode编码表中汉字的编码范围基本是为2万到4万左右,char可以表示该区间的数值,所以char可以表示一个汉字.如果有一个汉字没有在该范围内,则char无法表示.
这一到面试题基本没有什么价值,
不过可以考虑一下如何表示65535之外的字符用什么类型的数值表示?比如十六进制的100F6 对应十进制65782,在IDEA中如何显示出来该字符?
补充 汉字对应的编码表
GB2312编码:1981年5月1日发布的简体中文汉字编码国家标准。GB2312对汉字采用双字节编码,收录7445个图形字符,其中包括6763个汉字。
BIG5编码:台湾地区繁体中文标准字符集,采用双字节编码,共收录13053个中文字,1984年实施。
GBK编码:1995年12月发布的汉字编码国家标准,是对GB2312编码的扩充,对汉字采用双字节编码。GBK字符集共收录21003个汉字,包含国家标准GB13000-1中的全部中日韩汉字,和BIG5编码中的所有汉字。
GB18030编码:2000年3月17日发布的汉字编码国家标准,是对GBK编码的扩充,覆盖中文、日文、朝鲜语和中国少数民族文字,其中收录27484个汉字。GB18030字符集采用单字节、双字节和四字节三种方式对字符编码。兼容GBK和GB2312字符集。
Unicode编码:国际标准字符集,它将世界各种语言的每个字符定义一个唯一的编码,以满足跨语言、跨平台的文本信息转换。