[Java - (13) ] " == " VS " .equals() "
문자열은 == 연산자로 비교할 수 없다.
더욱 정확히 설명하자면, 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 |
'◽ Java language > Java' 카테고리의 다른 글
[Java - 기본 - (5) ] 용어 설명 Java SE, JDK, JRE (0) | 2019.12.16 |
---|---|
[Java - 기본 - (4) ] 객체, 클래스(Class), 인스턴스 등 - 수정1 (0) | 2019.11.23 |
[Java - 기본 - (3) ] Integer와 int의 차이 (0) | 2019.10.02 |
[Java - (12) ] indexOf( ), substring( ) → 특정한 문자열 기준으로 자르기, split( ) → 자른 문자열 배열에 넣기 (0) | 2019.08.25 |
[Java - (11) ] Thumbnailator - 썸네일 (0) | 2019.08.22 |
[Java - (10) ] UUID (GUID라고도 부름) → 범용 고유 식별자(universally unique identifier) (0) | 2019.08.22 |
[Java - (9) ] MultipartFile → 다중 파일 업로드, File → 파일&폴더 제어, FileOutputStream → 파일로부터 바이트 단위의 입.출력 (0) | 2019.08.21 |