이 코드를 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에
는 JDK 1.4
str[3] equals result[true] if
1.5
str[3] equals result[false] else
문자열 평등은 '=='연산자가 아니라 ' "3". equals (str)'으로 검사됩니다. –
이것은 JDK의 차이점과는 아무런 관련이 없지만 Java에서'String' 비교가 어떻게 작동하는지 이해하고 있습니다. 내 이전의 코멘트 – MadProgrammer
에서 제공된 링크를 확인해보십시오. 자바에서 객체 평등을 비교하려면 equals를 사용해야합니다. 동일한 객체를 참조하는 경우 ==를 사용해야합니다. 만약 그들이 인턴 되었다면 사실이됩니다. – nachokk