Published 2023. 9. 14. 20:12
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

반응형
복사했습니다!