假定当前系统环境的字符编码为GBK
char c = 'A';                 
String s = String.valueOf(c); 
int length = s.getBytes().length;
字符变量c在内存中占几个字节?
length的值是多少?
如果length的值与c所占用的字节数不等, 试说明原因.

解决方案 »

  1.   

    s占2个字节,length的值是1.
    值肯定不一样,因为getBytes()方法把字符串一字节形式封装了。一个是字符形式的一个是字节形式的,当然不一样咯
      

  2.   

    java 中 char是占两个字节,
    但是将它getBytes()后,是以字节形式储存的。
    英文字母A在char中储存的时候,第一个字节储存字母‘A’,第二个字节其实没有意义,空在哪里。
    所以转为Byte后,只有第一个字节有效,第二个字节无效,所以是大小为1.
    不知道这样的说法是不是对的,取求证?