现在的位置: 首页 > 综合 > 正文

第二天:char 详解

2018年05月16日 ⁄ 综合 ⁄ 共 1241字 ⁄ 字号 评论关闭

字节:byte,它是计算机的数据存储单元,每个字节包括8个二进制“位-bit”,可以保存8位的二进制数。
  计算机内存和硬盘等存储空间的管理都是以字节为基本单位,每个字节都有自己的编号,而“字符-Char”是人们用作标记的符号,
如'A'、'一'等,每个字符都具有约定的抽象含义。
  由于受到电子设备的物理特定限制,例如磁性存储器只适合保存两种状态的信息—磁性的强弱、
以电信号的方式也只适合传递两种状态的信息—电压的高低,
因此在计算机中最终结果时再将转换为人们熟悉的格式,如十进制数值、字符和图形等。
  为了实现对字符信息的存储,人们将可能用到的字符排成一个有序的字符队列,
这种由多个有序字符组成的集合称为“字符集-Charset”,而在计算机中世纪保存的是字符在字符集中的序号,
即一个二进制形式的整数。而到底采用1个还是多个字节以及具体如何来存储一个字符集的字符,
这种相关的规定被称为“编码-Encoding”。
  Java最初采用的是16位Unicode编码(UTF-16)来表示字符,无论序号大小,
每个Java字符都占用定长的2B(16个二进制位),因此最多能表示65536个不同的字符,
这只是粗略的说法,世纪上如果采用变通的饭食进行字符编码,UTF-16编码可以表示的字符远多于65536个。
  例如,从JDK5开始Java语言引入了Unicode编码规范中的代码点(Code Point)机制,
将每个字符对应的代码称为一个代码点,基本的多语言字符的代码点还是用16位表示,
这16位的二进制数据也称为一个单元代码(Code Unit),此时一个代码单元也对应一个代码点;
  而后扩充辅助字符则编码为2个连续的代码单元(32位),此时一个代码点有两个代码单元组成,
这实际上是将UTF-16也变成了可变长度编码。
  Java中字符常量有三种表现形式:
  (1) 用英文单引号括起来的单个字符,例如:'a'、'字'。这是最常见的声明字符形式。
  (2) 用英文单引号括起来的十六进制字符代码值来表示单个字符。
其格式为:'uXXXX',其中u是约定的前缀(u是unicode的第一个字母)
,而后面的XXXX位4位十六进制数,是该字符在unicode字符集中的序号。例如:'uFFFFFF'。
  (3) 某些特殊的字符可以采用转义符来表示,
如换行和制表符在源文件直接出现会被当做分隔符、而不是做字符常量来使用,
因而分别使用'n'和't'来转移,下面给出一些常见的Java程序中用到的转义符:
  n:换行符,unicode值为'u000a'
  t:制表符,unicode值为'u0009'
  r:回车符,unicode值为'u000d'
  ":双引号,unicode值为'u0022'
  ':单引号,unicode值为'u0027'
  \:反斜杠,unicode值为'u005c'
  b:退格符,unicode值为'u0008'
  在Java中声明字符:char c1 = '一'; 即表示c1是一个字符。

抱歉!评论已关闭.