byte的上下限不是-128~127吗?但是为什么用String s = "中文";
byte[] reqBuf = s.getBytes();可以存入汉字?汉字的字节码>127的,out.print输出的结果看到也是>127的数

解决方案 »

  1.   

    我用byte[] reqBuf = {200};立马提示出错,感觉Java在这个问题上太不严谨了,文档里的说明和实际根本对不上,打击了我的学习兴趣
      

  2.   

    1-127是正数,128-255是负数,用的时候b >= 0 ? b : b + 256
    每个byte是256个数,两个byte按高低位排列不就可以表达>256的数字了么
      

  3.   

    public static void main(String[] args) {
    String s = "中文";
    byte[] b = s.getBytes(); for (byte bb : b) {
    System.out.print(bb + ",");
    }
    }执行一下,看看哪个值超过-128~127这个范围了,然后再来提问
      

  4.   

    大于127的byte必然都成了负数了啊。