在Java一般使用HashCode来代表对象的地址,但是两个相同的对象就不行了,两个相同的对象的hashcode是相同的。
如果要对比两个相同的对象的地址可以使用,System.identityHashCode(传输进去的参数是一个对象)
Date d = new Date();
Date dd = (Date) d.clone();
Date ddd = d;
System.out.println(d.hashCode() + " " + System.identityHashCode(d));
System.out.println(dd.hashCode() + " " + System.identityHashCode(dd));
System.out.println(ddd.hashCode() + " " + System.identityHashCode(ddd));
结果
440199123 118352462
440199123 1550089733
440199123 118352462