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

Posted 八月份的尾巴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
}

 

以上是关于Java中“==”和“equals()”的区别的主要内容,如果未能解决你的问题,请参考以下文章

java equals 和 == 区别

Java 中 equals 和 == 的区别

java 中equals和==的区别

[转]Java中==和equals的区别,equals和hashCode的区别

java中==和equals的区别详解

java中equals和equalsignorecase的区别