char[] str={'h','i'};
System.out.println(str);//这里输出的是字符串hi
System.out.println("str:"+str);//这里输出的是地址值,str:[C@5f184fc6
为什么第二种输出不是字符串,而是str的地址值,求解答!
调用了两个不同的重载方法,
第一个接收char[],直接输出内容
第二个接收String, 传参的过程中加号操作时, 第二个char[]用.toString()方法转化为“地址”。
按住Ctrl键,鼠标分别点击两个println,看看源代码就明白了。
第二种方法应该是输出数组的toString方法返回值吧
因为"str:"+str中,str会默认toString,str.toString()就是地址。另外System.out.println();有直接接收char[]数据类型的重载方法,可以直接输出字符数组。