/*
* 1.对象的哈希码值和内存地址值不是一回事;
* 2.如果自定义类不复写Object类中的equals方法,那么equals比较的就是两个对象的内存地址值。
*/
/**
* 下面证明了hash值和内存地址的关系
* 一、当没有重写hashCode()方法的时候,
* System.out.println(c);//获取的是hash值 collection_.set_.C@1b6d3586
* System.out.println(System.identityHashCode(c));//获取的是内存地址 460141958
* System.out.println(d);//获取的是hash值 collection_.set_.C@4554617c
* System.out.println(System.identityHashCode(d));//获取的是内存地址 1163157884
* 内存地址和哈希值是不一样的。
* 二、当重写了hashCode()方法的时候:
* System.out.println(c);//获取的是hash值 collection_.set_.C@1661a95
* System.out.println(System.identityHashCode(c));//获取的是内存地址 460141958
* System.out.println(d);//获取的是hash值 collection_.set_.C@1661a95
* System.out.println(System.identityHashCode(d));//获取的是内存地址 1163157884
* 通过上面的两个例子,可以看出的是,重写hashCode()方法,影响的仅仅是hash值,而不会影响内存地址。
* 如果不重写equals方法的话,默认比较的是内存地址。那么无论hash值是否改变,地址是不变的。
*/