public static void main(String[] args) {
String a = new String("lo").intern();
final String d = a.intern();
String b = "lo";
final String e = "lo";
String c = "Hello";
System.out.println(b==a);//true
System.out.println(d==a);//true
System.out.println(e==a);//true
System.out.println(c=="Hel"+a); //why is this false? when e==a is true
System.out.println(c=="Hel"+d); //why is this false?
System.out.println(c=="Hel"+b); //why is this false?
System.out.println(c=="Hel"+e); //this is true
}
이 같은 기준을 의미는
true
true
true
false
false
false
true
에 e==a
에 해당하는 표현을 발생합니다. 그렇다면 마지막 표현이 참인 이유는 무엇입니까? 예를 들어 c== "Hel"+a
은 false입니까?
나는 지난 4 개의 모든 것이 거짓이어야한다고 생각한다. 이 예를 들어 보겠습니다. – markspace
u가 equals()를 사용해 보았습니다. –
비슷한 질문을했는데 답변을 듣지 못했지만 필요한 경우가 아니라면 일반적으로 문자열을 사용할 가치가없는 것으로 나타났습니다. –