==运算符如何在java中工作

时间:2014-04-11 20:09:09

标签: java

public class StrEqual {
    public static void main(String[] args) {
        String s1 = "hi";
        String s2 = new String("hi");

        System.out.println(s1);
        System.out.println(s2);

        if(s1 == s2){
            System.out.println("s1 and s2 are equal");
        }
        else{
            System.out.println("s1 and s2 are not equal");
        }
    }
}

在上面的代码s1和s2中都引用字符串“hi”。但为什么程序的输出是's1和s2不相等'?谢谢

2 个答案:

答案 0 :(得分:4)

尝试

s1.equals(s2);

s1 == s2比较对象引用,而不是字符串内容。

答案 1 :(得分:0)

==运算符比较对象引用,即它们在内存中的位置。这就像比较指针。要实现“深度”平等,您需要使用equals方法。