728x90
반응형
주소값 비교 (== 연산자)
== 연산자는 두 개의 변수나 객체의 메모리 주소값을 비교
두 변수가 같은 객체를 참조할 때만 true를 반환하며, 객체의 내용이 같은지 여부와는 관계 없음
객체가 동일한 인스턴스인 경우에만 == 비교는 true를 반환
String str1 = new String("Hello");
String str2 = new String("Hello");
System.out.println(str1 == str2); // false (서로 다른 객체의 주소값을 비교)
값 비교 (equals 메서드)
두 객체의 내용이 같은지 비교
객체의 내용, 즉 데이터가 동일한 경우 true를 반환하며, 객체의 메모리 주소값과는 상관없음
equals 메서드는 일반적으로 클래스에서 재정의(override)되어야 하며, 내용 비교를 원하는 방식대로 정의할 수 있음
String str1 = new String("Hello");
String str2 = new String("Hello");
System.out.println(str1.equals(str2)); // true (두 문자열의 내용이 같음)
문자열 비교 compareTo()
compareTo()은 두개의 문자열을 비교
동일한지의 여부만 확인할 수 있는 equals()와 다르게 값의 순서도 리턴
그렇기 때문에 compareTo()를 이용하면 리스트를 오름차순으로 정렬하거나 내림차순으로 정렬할 수 있음
리턴 값은 0, 음수, 양수의 int가 리턴되며 의미는 다음과 같음
- 0 : 두개의 문자열이 동일
- 양수 : compareTo()를 호출하는 객체가 인자보다 순서가 앞설 때
- 음수 : 인자가 객체보다 순서가 앞설 때
참고 자료 : https://velog.io/@lgw2236/JAVA-%EC%9E%90%EB%A3%8C%ED%98%95%EB%B9%84%EA%B5%90-%EC%A0%95%EB%A6%AC
반응형
'프로그래밍 > JAVA' 카테고리의 다른 글
[Java] ArrayList 맨 앞에 값 추가하기 (0) | 2023.10.12 |
---|---|
[Java] Deprecated StringUtils.isEmpty 대체 (0) | 2023.09.27 |
[Java] String을 Integer로 변환(String to Integer, String to Long) (0) | 2023.09.13 |
[Java] NULL 처리 방법 (0) | 2023.09.12 |
[Java] LocalDateTime 값을 yyyyMMdd 문자열로 포맷팅 (0) | 2023.09.05 |