char[] numbers = { '1', '2', '3' };
        Integer[] numbers2 = {1,2,3 };        System.out.println(numbers.toString());
        System.out.println(numbers);
        System.out.println(numbers2);常规来说,输出都一致才是,为什么会有这样的区别呢?

解决方案 »

  1.   

    呵 我也是菜鸟 坐等高手解答!!!
    System.out.println(numbers.toString());
    这句调用Object的toString(),toString()打印出内容+哈希码 一般要重写toString() 才能得到你想要的结果
      

  2.   

    第二打印的其实是最终调用
     public void write(byte b[], int off, int len) throws IOException {
    if (b == null) {
        throw new NullPointerException();
    } else if ((off < 0) || (off > b.length) || (len < 0) ||
       ((off + len) > b.length) || ((off + len) < 0)) {
        throw new IndexOutOfBoundsException();
    } else if (len == 0) {
        return;
    }
    for (int i = 0 ; i < len ; i++) {
        write(b[off + i]);
    }
        }
      

  3.   

    楼上几位可以从 PrintStream 源码开始找
      

  4.   

    数组类没有重写toString方法
    要打印数组中的所有元素请用System.out.println(java.util.Arrays.toString(array));
      

  5.   

    看api和源码:
    1:主要看System.out.println(xx)这个方法如何处理xx.
    2:yy.toString();如何处理