黑马程序员技术交流社区

标题: 对输出语句的疑惑 [打印本页]

作者: 蓝玉    时间: 2015-3-12 09:11
标题: 对输出语句的疑惑
public class diyiti
{
        public static void main(String[] args)
        {
                int[] it={1,2,3};
                char[] ch={'c','b','a'};
                String[] str={"ad","ab"};
                System.out.println(ch);
                System.out.println(str);
                System.out.println(it+"\n"+ch+"\n"+str);
        }
}
运行结果为:
cba
[Ljava.lang.String;@3e0ebb
[I@39443f
[C@1afae45
[Ljava.lang.String;@3e0ebb
为什么打印System.out.println(ch);,数组名称,能将数组内容打印出来,而不是数组地址?


作者: wangshengjie    时间: 2015-3-12 09:14
c++!!!!!!!
作者: 金康俊    时间: 2015-3-12 10:30
诶~~难道是char类型有什么特别么,等大神解答。
作者: wenke    时间: 2015-3-12 13:13
刚看到 刚试了试 真是个问题 以前没注意到过
作者: wenke    时间: 2015-3-12 13:17
猜测是String st=new String(char[] ch)  这个构造方法可以接收一个char数组    然后System.out.println(new char[] {'c','b','a'}); 这个输出语句内部输出的时候两者有关系    但数组在api中一直找不到相关介绍的类名 查不到具体内部是怎么实现的
作者: 杨强彪    时间: 2015-3-12 13:29
public class diyiti
{
        public static void main(String[] args)
        {
                int[] it={1,2,3};
                char[] ch={'c','b','a'};
                String[] str={"ad","ab"};
                System.out.println(ch+"");                                  //这个地方这样试试
                System.out.println(str);
                System.out.println(it+"\n"+ch+"\n"+str);
        }
}

作者: 蓝玉    时间: 2015-3-12 13:43
我是想知道,为什么不是输出数组地址,而是数组内容
作者: 杨强彪    时间: 2015-3-12 14:04
蓝玉 发表于 2015-3-12 13:43
我是想知道,为什么不是输出数组地址,而是数组内容

这个我也想知道{:3_62:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2