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会默认分配同一个内存地址。

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