끄적이는 중...

Note

[Java] == vs equals

String a = "hi";
String b = new String("hi");   // 새 컵을 일부러 만듦

a.equals(b)   // true  ← 글자가 같음
a == b        // false ← 다른 컵

비유: 쌍둥이 컵

똑같이 생긴 컵이 2개 있다 안에 둘 다 콜라가 들어 있다

  • equals → "안에 든 게 같아?" → 둘 다 콜라니까 true
  • == → "같은 컵이야?" → 생긴 건 같아도 컵이 2개니까 false
String a = "hi";
String b = "hi";
a == b   // true ?!

이건 Java가 똑같은 글자를 직접 쓰면 컵 하나를 같이 쓰게 해 줘서 우연히 true가 나온다

그래서 "어? 되네?" 하고 쓰다가, 다른 상황에서 갑자기 false가 나와 버그가 생기니 유의할 것

비교 대상  쓸 것
숫자 int, 글자 char ==
문자열 String .equals()

 

관련글