Java基础:字符与 char

1. Java 字符采用的是 Unicode 编码

    用两个字节来表示一个字符。

 

    需要注意:

    * Java的class文件采用UTF-8编码方式,JVM运行时采用UTF-16编码方式。

    * Java的字符编码是unicode编码,即两个字节(16位)。

    * Java中的String类是按照unicode进行编码的。

 

    对于我们常用的GBK中,英文是占用1个字节,中文是2个
    对于UTF-8,英文是1个,中文是3个
    对于Unicode,英文中文都是2个

 

2. char 表示的范围

     字节数:  2otcs

     数值:    0-65535

    即:'/u0000'  ~  '/uFFFF'   <=>    (char)0 ~ (char)65535

    '/u0000'  ~  '/uFFFF'   没有小写字母如/u00ad是错误的。

 

    如下所示例子:

    char ch = '张'; System.out.println(ch);//张 System.out.println((int)ch);//24352,十六进制5F20 System.out.println('/u5F20');//张 System.out.println((char)0x5f20);//张 System.out.println((char)24352);//张 System.out.println('/uFFFF');//符号 ? System.out.println((char)65535);//符号 ?

 

    另外,/u0000表示空值,有空格的作用,但不是null值。

    System.out.print('/u0000' + "ok");//空格 ok System.out.println((char)0);//空格

 

3.  转义字符

     * n:换行符,unicode值为'u000A'    * t:制表符,unicode值为'u0009'    * r:回车符,unicode值为'u000D'    * ":双引号,unicode值为'u0022'    * ':单引号,unicode值为'u0027'    * /:反斜杠,unicode值为'u005C'    * b:退格符,unicode值为'u0008'

某些特殊的字符可以采用转义符来表示,如换行和制表符在源文件直接出现会被当做分隔符、而不是做字符常量来使用.
上面给出一些常见的Java程序中用到的转义符。

 

如果在代码中使用/u0000-/uFFFF方式来引用字符,遇到有些转义字符如回车符会报错的。

error: 字符字面值的行结尾不合法

    System.out.println('/u0009' + "wo"); System.out.println('/u0008' + "wo"); System.out.println('/u0022' + "wo"); /*以下均会报错*/ /*System.out.println('/u0027' + "wo");*/ /*System.out.println('/u005C' + "wo");*/ /*System.out.println('/u000A' + "wo");*/ /*System.out.println('/u000D' + "wo");*/ 




 

你可能感兴趣的:(java,jvm,c,String,null,Class)