您的位置:首页 > 其它

关于char的理解

2015-11-13 15:34 197 查看
char类型用于表示单个字符。通常用来表示字符常量。例如:'A'是编码为65所对应的字符常量。Unicode编码单元可以表示为十六进制值,其范围从\u0000到\uffff。例如:\u03C0表示希腊字母π,除了可以采用转义序列符\u表示Unicode代码单元的编码之外,还有一些用于表示特殊字符的转义序列符。例如'\b'表示退格,它的Unicode的值表示\u0008.'\t'表示制表,unicode值'\u0009'.'\n'表示换行,unicode值'\u000a'.'\r'表示回车,unicode值为'\u000d'.\''双引号,unicode值为\u0022.\'单引号,unicode值为\u0027.\\反斜杠,unicode值为\u005c.所有的这些转义序列符都可以出现在字符常量或字符串的引号内。例如,'\u2122'或"Hello\n"。转义序列符\u还可以出现在字符常量或字符串引号之外(而其他所有转义序列不可以)。例如:

public static void main(String\u005B\u005D args)

这种形式完全符合语法规则,\u005B和\u005D是[和]的编码。

要想弄清char类型,就必须了解Unicode编码表。Unicode打破了传统字符编码方法的限制。在Unicode出现之前,已经有许多不同的标准:美国的ASCII、西欧语言中的ISO8859-1,俄国的KOI-8、中国的GB 18030 和BIG5等。这样就产生了下面两个问题:一个是对于任意给定的代码值,在不同的编码方案下又可能对应不同的字母;二是采用大字符集的语言其编码长度有可能不同。例如,有些常用的字符采用单字节编码,而另一些字符则需要两个或更多字节。

设计Unicode编码的目的就是要解决这些问题。在20世纪80年代开始启动设计工作时,人们认为两个字节的代码宽带足以能够对世界上各种语言的所有字符进行编码,并有足够的空间留给未来的扩展。在1991年发布了unicode1.0,当时仅占用65536个代码值中不到一半的部分。在设计JAVA时决定采用16位的Unicode字符集,这样会比使用8位字符集的程序设计语言有很大的改进。十分遗憾,经过一段时间,不可避免的事情发生了。Unicode字符超过了65536个,其主要原因是增加了大量的汉语、日语和韩国语言中的表意文字。现在,16位的char类型已经不能满足描述所有Unicode字符的需要了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: