有以下程度段: 
                int i = 100;
              String s = String.valueOf(i);
              System.out.pintln(s);
              byte[] b = s.getBytes();
            System.out.pintln(b);
怎么运行结果是这样:   100
                      [B@a90653
     
        

解决方案 »

  1.   

    100          这个不需要解释了, s的值就是这个...
    [B@a90653    这里b的类型是byte[], 在Java中数组也是对象, 是对象就继承了Object的toString()方法, System.out.println(b)就是调用b.toString(), 然后将结果输出到控制台, 数组的toString()实现就是这样..
      

  2.   

    println()这个函数的参数中没有字节数组的,
    所以不能像输出字符串一样,输出字符串的值,
    而只能按对象输出,因为对象继承了object的toString()方法,所以将
    用来标识对象的那个值输出,这个我也不是太清楚,如果说的有错,请不要见怪不过我还是建议楼主,没事多看看API
      

  3.   

    public static String convertArrayType(Class type) { String arrayTypeName = type.getName();
    String elementTypeName = null;
    if(arrayTypeName.length() == 2)
    {
    if(arrayTypeName.equals("[I"))
    {
    elementTypeName = "int";
    }
    else if(arrayTypeName.equals("[J"))
    {
    elementTypeName = "int";
    }
    else if(arrayTypeName.equals("[B"))
    {
    elementTypeName = "byte";
    }
    else if(arrayTypeName.equals("[S"))
    {
    elementTypeName = "short";
    }
    else if(arrayTypeName.equals("[C"))
    {
    elementTypeName = "char";
    }
    else if(arrayTypeName.equals("[F"))
    {
    elementTypeName = "float";
    }
    else if(arrayTypeName.equals("[D"))
    {
    elementTypeName = "double";
    }
    else if(arrayTypeName.equals("[Z"))
    {
    elementTypeName = "bool";
    }
    else
    {
    throw new RuntimeException("没有此数组类型"+ arrayTypeName + "].");
    }

    }
    else
    {
    elementTypeName = arrayTypeName.substring(2,arrayTypeName.length() - 1);
    } return elementTypeName;
    }
      

  4.   

    System.out.pintln(b);b是一个对象,则实际打印的是b.toString()返回的String
    如果b没有重写Object类的toString()方法的话,
    那么将调用Object类的toString(),代码如下。
    public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
        }返回的是类型名称@hash码。
    对于一般数组就是[+表示,对象数组则是[J+类型名称。
      

  5.   

    能不能具体解释一下这个结果是怎么来的:[B@a90653,前面的[B@a我知,但是90653是怎样来的呢??