A@2a139a55 结果产生的原因

时间:2023-03-09 16:19:57
A@2a139a55   结果产生的原因

程序代码:

public class ExplorationJDKSource {

/**
* @param args
*/
public static void main(String[] args) {
System.out.println(new A());
}

}

class A{}

运行结果:

A@2a139a55

为啥会产生这样的结果??!!

原因分析:

main方法实际上调用的是: public void println(Object x),这一方法内部调用了String类的valueOf方法。

valueOf方法内部又调用Object.toString方法:

public String toString()

{

return getClass().getName() +"@" + Integer.toHexString(hashCode());

}

hashCode方法是本地方法,由JVM设计者实现: public native int hashCode();

所以通过层层调用结果就显示出了      类名+@+哈希值!! !    哈哈哈