Out是PrintStream对象,PrintStream中对println()进行了重载
char[] arr={'a','b','c','d','e'};调用的是这个方法,
public void println(char x[]) {
synchronized (this) {
print(x); //此处底层调用的是Writer的void write(char[] cbuf)写入字符数组 }
}
int[] arr1={1,2,3,4,5};//因为有对应char数组类型的方法,而无对应 int数组类型方法,而数组本身是引用对象所有会调用下面的方法
public void println(Object x) {
String s = String.valueOf(x); //x调用toString()方法所以返回I@de6ced ,所以结构就是arr[I@de6ced
}
synchronized (this) {
print(s);
newLine();
}
}
|