java基础,为什么直接输出对象得出的是带有一串地址

今天突然对于对象直接输出得出一串地址有了兴趣(其实最近都在强迫自己,遇到问题看源码),对着源码看一遍果断醒悟了。下面记录一下:

1.新建一个person类,什么都不用写,直接输出new person()对象 得到结果

java基础,为什么直接输出对象得出的是带有一串地址_第1张图片

 

2.一层一层找源码:PrintStream   主要是 

String s = String.valueOf(x); 这段话,我们先看看print(s) ,newLine()仅仅进行换行操作.newLine();

java基础,为什么直接输出对象得出的是带有一串地址_第2张图片

3.print(s)中 write(s)中进行输出流

java基础,为什么直接输出对象得出的是带有一串地址_第3张图片

java基础,为什么直接输出对象得出的是带有一串地址_第4张图片

4.重点来了,

String s = String.valueOf(x);

调用的是object.toString(),方法

5.我们看看Object中的toString()方法中的源码,

 Integer.toHexString()是将数转换成十六进制的方法

有没有恍然大悟的感觉,地址信息一目了然。

你可能感兴趣的:(java基础,为什么直接输出对象得出的是带有一串地址)