答案是A
因为一个英语是一个字节,一个汉字是2个字节。
java共计4个字节,
程序员共计6个字节
加起来一共10个字节。

解决方案 »

  1.   

    Java里面用的都是Unicode编码吧,不管任何字符,一个字母或者一个汉字都是一个char类型的,一个char类型在Unicode码里面就占用2个字节。答案就应该是14,一二楼所说的10,他们应该按照C\C++里面的ASCII码的思维来想的。
      

  2.   

    你要分清几个概念,字符串指String,内部由char数组实现
    问字符串占用的大小,就是char数组占用的大小,就是char占用的大小 * 数组长度
    数组长度是一定的,你觉得char占用的大小和字符编码有关系吗?
    当然是无关的,char占用2个字节,所以这里就是14字节。至于你说的占用大小要根据字符编码来决定,这个情况是有的,但放在这里是错误的,字符编码嘛就是字符编码方式,你要把字符进行编码了才有字符编码一说,所以比如你把“java程序员”进行GBK编码,那结果就是10字节的byte数组,进行UTF-8编码,就是13字节的byte数组等等。
      

  3.   

    13个字节??你是怎么得到的? utf8占的字节是一到三个字节不等
      

  4.   

    你不会自己试一下?
    String str = "java程序员";
    byte[] bys = str.getBytes("UTF-8");
    System.out.println(bys.length);
    UTF-8占用的字节是1~3字节不等,但又不是说你不能计算具体大小。
    ascii字符集内的字符都是单字节编码的,中文几乎所有的都在4E00-9FBF:CJK 统一表意符号区,这个区间UTF-8采用3字节编码,所以”java程序员“占用13个字节有问题?
      

  5.   

    你不会自己试一下?
    String str = "java程序员";
    byte[] bys = str.getBytes("UTF-8");
    System.out.println(bys.length);
    UTF-8占用的字节是1~3字节不等,但又不是说你不能计算具体大小。
    ascii字符集内的字符都是单字节编码的,中文几乎所有的都在4E00-9FBF:CJK 统一表意符号区,这个区间UTF-8采用3字节编码,所以”java程序员“占用13个字节有问题?说的好,话说笔试面试的时候会让你自己试试你太离谱了