默认的hashCode不是地址值,只是个随机数。此时想要hashcode为真正的地址值,改一下,-XX:hashCode=4.这下就是真正的hashcode等于地址值了。
    hashCode的作用,是为了在使用数据结构为hash表的集合时,集合会对新加入元素的hash值和自身元素的hash值进行对比,这时就会用到新加入元素的hashCode获取哈希值。
      如果数据结构为hash表的集合中加入的元素是引用类型,不重写hashCode和equals的话,会出现元素不唯一的情况,因为默认hashCode转换的是地址值,默认equals对比的也是地址值,同一个类两个实例,地址值也一定不一样。
     还有一个细节就是重写了hashCode后,System.out.println输出的地址值变成了包名+hash值,但真正的内存地址值并没有变。