我使用JDK 1.4和1.5运行此代码并获得不同的结果。为什么会这样?为什么JDK 1.4和1.5之间的输出不同?
String str = "";
int test = 3;
str = String.valueOf(test);
System.out.println("str[" + str + "]\nequals result[" + (str == "3") + "]");
if (str == "3") {
System.out.println("if");
} else {
System.out.println("else");
}
输出:
在JDK 1.4
str[3] equals result[true] if
在JDK 1.5
str[3] equals result[false] else
字符串相等性使用'“3”.equals(str)'而不是'=='运算符进行检查。 –
这与JDK之间的差异无关,但是您了解如何在Java中使用“字符串”比较。查看我以前的评论 – MadProgrammer
中提供的链接,以比较java中的对象相等性,您必须使用equals,如果它们引用同一个对象,则使用== ...如果它们被拦截,那么这就是您的真实情况。 – nachokk