定义一个字符串数组,char[] c = {'a','b','c'};
System.out.println(c);
//输出abc
System.out.println(c+"");
//输出[C@6bbc4459
System.out.println(c.toString());
//也是输出[C@6bbc4459如果定义
int[] arr={1,2,3,};
那么arr是对象,为什么char[] 不是当做对象来处理的,求高手解释。字符数组 char[] java

解决方案 »

  1.   

    char[]是对象,可以想象问题应该出在println的重载方法上。JDK里面的实现太复杂。。懒得追溯了。。最后会调用这个的implWrite函数:
    http://www.docjar.com/html/api/sun/nio/cs/StreamEncoder.java.html
      

  2.   

    char[] 是字符数组。另外记得去看看toString是怎么实现的。
      

  3.   

    1. 3条sysout调用了2个不同的方法
    2. arr只是个句柄而非对象
    3. 数组在java中作为特殊的对象加以处理
      

  4.   

    建议去看看String类的基层实现...
      

  5.   

    JDK自带源码的 楼主可以去找找 好像名字叫src.zip
      

  6.   

    System.out 是一个 PrintStream 的实例,PrintStream 提供了 
    println(char[] x) / print(char[] s) 方法。没有提供参数类型是int[]的方法。