字符:char   \u0000  to \uFFFF
字节:byte   -128    to 127

解决方案 »

  1.   


    char : 16 bit,一个char可容纳一个ASII字符,也可以容纳一个汉字;
    byte : 8 bit,一个byte可容纳一ASII字符,但是只能容纳半个汉字;
      

  2.   

    java字符是unicode的占用16位。
    字节就是8位。
    显然 (字符 转成 字节) 会发生丢失数据位
    而反过来就不会了。
    java能跨平台必须有字节类型。
      

  3.   

    \u前缀,表示Hex
    我上面的意思是一个字符转成一个字节,当然一个字符可以完全被两个字节表示。如果你只用字符的话,那么有些机器是24位的怎么办?而且如果数据表示范围不超过8位的话,你用16位的字符长度表示浪费了至少8位空间个人观念,供参考
      

  4.   

    在计算机中,都用二进制来表示数据,能表示0和1两种状态的最小存储单位称位(bit)
    通常规定8bit为一个字节(byte, b),换句话说一个byte最多能表示2^8=256种不同的值,用它来表示拉丁,希腊,西里尔字母绰绰有余,还可以表示很多符号但是要表示中日韩文字就有困难,因此gb2312,big5,unicode等都使用16位来表示,因此一个字符在不同的字符集中所用的字节数不同
      

  5.   

    补充一下 \u表示16进制,也就是Hex