我理解并知道为什么你通常必须使用==来比较java中的字符串,但出于某种原因我能够在Eclipse中完成它。我的代码是 代码:
public class Test{
public static void main(String [] args){
String str1 = "string";
if(str1 == "string"){
System.out.println("wtf");
}
}
}
为什么从命令行使用javac打印“wtf”呢?
答案 0 :(得分:5)
Eclipse允许您比较引用,因为它是合法的比较。可能不是你真正想要的那个。
由于字符串实习,它有时似乎有效,但你不应该依赖它,除非你知道你所比较的字符串已被实习。将字符串与同等值进行比较的正确方法是使用.equals
。
答案 1 :(得分:0)
它允许比较两个地址可能比比较2个字符串更快(但谨慎使用它,你可能永远不必比较两个字符串地址)。
比较对象内存地址有时很有用,只要String是一个对象,eclipse允许你使用==
进行比较