java中最后一个打印怎么出现乱码的?
发布网友
发布时间:2022-04-26 08:29
我来回答
共2个回答
热心网友
时间:2022-06-25 20:01
这个就得看源码了。
public void println(Object x) {
//可以从源码中看出 println真正输出的是 s
String s = String.valueOf(x);
synchronized (this) {
print(s);
newLine();
}
}
然后这个 s 是怎么来的呢?如下所示
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
//如果只不为空就调用如下方法
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
所以如果不重写数组的toString方法的话,你最后输出的结果是
getClass().getName() + "@" + Integer.toHexString(hashCode());
当然,数组一般输出都是进行遍历然后输出每个元素。如下:
String[] infos = new String[] {"Java", "Android", "C/C++", "Kotlin"};
Arrays.stream(infos).forEach(System.out::println);
热心网友
时间:2022-06-25 20:02
System.out.println(score);改成
for (int s: score) {
System.out.println(s);
}