发布网友 发布时间:2022-05-04 23:53
共2个回答
热心网友 时间:2022-06-27 10:14
这个其实是一个基础问题,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的地址了。。。不过谢谢帮助。追答不客气!
热心网友 时间:2022-06-27 10:14
c+"" 方式是因为执行的是 c.toString()+"" 先将 c 转换字符再拼接