目錄
一、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會默認分配同一個內存地址。