equals
判断两个对象是否相等
//在Obejct中
public boolean equals(Object obj) {
return (this == obj);
}
对于基本数据类型,判断是否相等可以用值来衡量。
对于引用数据类型,多个同一类型对象的属性可能相同,但其内存地址不相同,所以,多个对象是否相同,要依据实际需求来判断。如:可以定义当属性相同时可以认为同一对象;又如:引用内存地址相同是证明是同一对象。
HashCode
public native int hashCode();
//native该关键字用来修饰方法,表示在java程序中调用的是其它底层(c/c++)代码实现。
hashCode代表了对象在hash表中的的地址,可以将数字抽象的理解为地址。该数字可以在HashMap中快速找到对象。
哈希函数(也叫散列函数)
不定长的输入——————>定长的输出 (单向,不可反推)
应用:MD5+salt
md5算法加一个随机数,避免被彩虹表破解。
哈希表
存储键值对K-V。