Java中“==”和“equals()”的区别

“==”比较的是变量所指向的对象,当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
}

 

posted @ 2017-09-22 10:45  八月份的尾巴  阅读(143)  评论(0编辑  收藏  举报