目录
一、hashCode方法
hashcode()方法返回对象的散列码。散列码(hash code)是由对象导出的一个整数值。从底层来说就是在jvm创建一个对象,会在JVM里面对应一个地址,这个地址对应生成一个散列码。
二、equels方法
equels()方法等同于==,比较的是两个对象的地址是否相同。不同之处在于equels方法是object对象的方法,这样的话所有方法都可以重载这个方法,然后可以自定义自己的equels方法。
三、String底层分析
public static void main(String[] args) {
String st1="st";
String st2="st";
if (st1==st2){
System.out.println(st1.hashCode());
System.out.println(st2.hashCode());
System.out.println("true");
}else {
System.out.println("false");
}
}
运行结果
从结果中我们可以发现,st1和st2是同一个对象,指向的是同一个地址。这就是String对象和其他new出来的对象不同之处,如果他们的内容是一样的,JVM会默认分配同一个内存地址。