java中char数组的问题
char[]c=newchar[]{'q'};System.out.println(c);输出的c为q但是如果用System.out.println(c+"");输出的则...
char[] c = new char[]{'q'};
System.out.println(c);
输出的c为q
但是如果用System.out.println(c+"");
输出的则是c的地址值,求大神解答下为什么会这样? 展开
System.out.println(c);
输出的c为q
但是如果用System.out.println(c+"");
输出的则是c的地址值,求大神解答下为什么会这样? 展开
2个回答
展开全部
这个其实是一个基础问题,System.out.println(c+"");因为有个+号连字符,所以最后会变成一个字符串对象,因为你没重写toString()方法,所以会输出用类似[C@1c5fde0这样的值,这样值其实你可以在Object对象的toString()方法找到为什么是这样的。getClass().getName() + '@' + Integer.toHexString(hashCode()),也就是类名+@+16机制的一串数字。
追问
其实我懂了,PrintStream中的println()中有很多重载的方法,System.out.println(c)则是调用了println(char[] c)的方法,而另一个则是用println(String s)的方法,输出的自然是c的地址了。。。不过谢谢帮助。
追答
不客气!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询