◽ Java language/Java
[Java - (13) ] " == " VS " .equals() "
kkk20000a
2019. 8. 26. 08:49
문자열은 == 연산자로 비교할 수 없다.
더욱 정확히 설명하자면, Java에서는 String이 int, long과 같은 원초적인 타입이 아니라 객체입니다.
객체 끼리 비교할 때, '==' 연산자를 사용하면 메모리 주소를 비교하게 됩니다.
그래서, Java에서는 각 객체의 내용을 비교하기 위해 보통 .equals 라는 메서드를 가지고 있습니다.
▶ 참고 :
1번 : 인스턴스가 매번 새로 생성되므로 str1과 str2의 주소 값이 다름
2번 : 문자열 값은 같으므로 true 반환
3번 : 문자열 abc 상수 풀에 저장되어 있으므로 str3과 str4가 가리키는 주소 값이 같음
4번 문자열 값도 같으므로 true 반환
비교 연산자 (eq, ne, empty) 개념
== | eq |
!= | ne |
값이 널인지 찾기 | empty name(변수명), empty name 둘 다 ok |