String類型中hashCode和equals方法以及String底層相同內容對象分析

目錄

 

一、hashCode方法

二、equels方法

三、String底層分析


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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章