“==”比较的是变量所指向的对象,当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 }
时间: 2024-10-31 16:05:07