Java中“==”和“equals()”的區別
阿新 • • 發佈:2017-09-22
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()”的區別