黑马程序员技术交流社区

标题: 字符数组为什么可以直接打印数组名啊 [打印本页]

作者: 骚动的石头    时间: 2016-8-3 21:31
标题: 字符数组为什么可以直接打印数组名啊
有没有大手子解释一下,打印出来不是地址,而是数组内容

作者: 13411939415    时间: 2016-8-3 22:13
单纯只是字符数组的话打印的就是地址啊,如果字符数组存在其他对象里那就应该是调用了该对象的toString()方法
作者: 骚动的石头    时间: 2016-8-3 22:33
13411939415 发表于 2016-8-3 22:13
单纯只是字符数组的话打印的就是地址啊,如果字符数组存在其他对象里那就应该是调用了该对象的toString()方 ...

public class Test4 {
        public static void main(String[] args) {
                char[] c = {'a','b'};
                System.out.println(c);
}
}只是这样啊
作者: Liangfwu    时间: 2016-8-3 22:47
值得拿去问一下老师
作者: 13411939415    时间: 2016-8-3 22:54
骚动的石头 发表于 2016-8-3 22:33
public class Test4 {
        public static void main(String[] args) {
                char[] c = {'a','b'};

这个真的得去问问老师了,底层代码又不知道要怎么查看
作者: 牧风    时间: 2016-8-3 23:10
数组是引用数据类型对吧,char是基本数据类型 他存进数组的时候是怎么样的呢?
我认为他是封箱 转换成引用数据类型的Character 然后Character重写了toString () 然后当你打印char类型的数组的时候他就自动拆箱 或者直接打印出来
我觉得这样将应该是对的。 因为 数组是引用数据类型,char是基本数据类型 他存储的时候就是转成character
作者: 骚动的石头    时间: 2016-8-3 23:26
Liangfwu 发表于 2016-8-3 22:47
值得拿去问一下老师

这是个问题..
作者: 骚动的石头    时间: 2016-8-3 23:27
13411939415 发表于 2016-8-3 22:54
这个真的得去问问老师了,底层代码又不知道要怎么查看

嗯...这个自己思考确实很无力
作者: 骚动的石头    时间: 2016-8-3 23:32
牧风 发表于 2016-8-3 23:10
数组是引用数据类型对吧,char是基本数据类型 他存进数组的时候是怎么样的呢?
我认为他是封箱 转换成引用 ...

还是不理解啊 明天问问老师去
作者: 牧风    时间: 2016-8-4 00:09
好尴尬 我的解释是错误的。。。。 你点开API  system  找out 流 print 方法 看了就明白了
作者: 骚动的石头    时间: 2016-8-4 21:32
牧风 发表于 2016-8-4 00:09
好尴尬 我的解释是错误的。。。。 你点开API  system  找out 流 print 方法 看了就明白了 ...

明白了 看到了
作者: Liangfwu    时间: 2016-8-4 23:20
我查了一下百度,这是一个println方法 的重载,   system.out.println这一句话中的println()就是一个方法,在我们输出一个字符数组时他就用了一个 println(char[] x) 这个方法了
作者: 骚动的石头    时间: 2016-8-5 21:57
Liangfwu 发表于 2016-8-4 23:20
我查了一下百度,这是一个println方法 的重载,   system.out.println这一句话中的println()就是一个方法,在 ...

哦哦 原来如此
作者: 大天    时间: 2016-8-7 21:27
它重写了toString方法




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