“==”比较的是基本数据类型 指向的是该值在栈内存中的地址
“.equals()"比较的是变量,指向的是变量的值
hashcode()是在散列集合中用到,这样的散列集合包括hashset,hashmap,hashtable
当需要往hashmap中存入新值的时候,先调用hashcode()方法,得到对应的hashcode的值,在hashcode中会有一个table保存已存的对象的hashcode的值,如果table中没有该值就可以直接存进去,如果有的话就会调用equals()和新元素对比,相同的话就不保存了,不同的话就散列其他的地址,所以这里就存在一个冲突解决的问题,这样一来用equals的次数就大大降低了,说通俗一点 ,java中的hashcode方法就是根据一定的规则将与对象相关的信息(比如对象的存储地址,对象的字段等)映射成为一个数值,这个数值称作为散列值
注:博文来源于网络收集,仅作为个人观点