为什么Eclipse允许与==进行字符串比较?

时间:2014-05-04 22:40:37

标签: java string

我理解并知道为什么你通常必须使用==来比较java中的字符串,但出于某种原因我能够在Eclipse中完成它。我的代码是 代码:

public class Test{
    public static void main(String [] args){
        String str1 = "string";
        if(str1 == "string"){
            System.out.println("wtf");
        }
    }
}

为什么从命令行使用javac打印“wtf”呢?

2 个答案:

答案 0 :(得分:5)

Eclipse允许您比较引用,因为它是合法的比较。可能不是你真正想要的那个。

由于字符串实习,它有时似乎有效,但你不应该依赖它,除非你知道你所比较的字符串已被实习。将字符串与同等值进行比较的正确方法是使用.equals

答案 1 :(得分:0)

它允许比较两个地址可能比比较2个字符串更快(但谨慎使用它,你可能永远不必比较两个字符串地址)。

比较对象内存地址有时很有用,只要String是一个对象,eclipse允许你使用==进行比较