1. 程式人生 > >Java中“==”和“equals()”的區別

Java中“==”和“equals()”的區別

spa logs bsp 指向 monday class code equals out

“==”比較的是變量所指向的對象,當S1在內存中定義以後,再定義s2的時候s2所指向的值是定義s1時候所創建的,而不是又在內存創建了一個“Monday”。

“equals”比較的是對象所指向的值,所以不管在內存中新建了多少個對象,當用equals比較的時候結果總是Ture.

    @Test
    public void Test1() {
        String s1 = "Monday";
        String s2 = "Monday";
        System.out.println(
"s1==s2->>"+(s1==s2));//true System.out.println("s1.equals(s2)->>"+s1.equals(s2));//true } //執行結果如下 //s1==s2->>true //s1.equals(s2)->>true @Test public void Test2() { String s1 = "Monday"; String s2 = new String("Monday"); System.out.println(
"s1==s2->>"+(s1==s2));//false System.out.println("s1.equals(s2)->>"+s1.equals(s2));//true //執行結果如下 //s1==s2->>false //s1.equals(s2)->>true }

Java中“==”和“equals()”的區別