초코너무조코 2025. 4. 18. 11:01
728x90

✅ == 

  • 비교 대상: 객체의 참조(reference) 를 비교
  • 설명: 두 객체가 같은 메모리 주소(= 같은 인스턴스) 를 가리키는지를 확인
  • 기본형(primitive) 타입에서는 실제 값을 비교
String a = new String("hello");
String b = new String("hello");

System.out.println(a == b); // false → 서로 다른 객체를 참조

✅ .equals() 메서드

  • 비교 대상: 객체의 내용(값) 을 비교
  • 설명: 두 객체가 논리적으로 같은지를 판단
  • String, Integer 등 대부분의 클래스는 .equals() 를 오버라이딩해서 내용 비교가 되도록 정의돼 있음
System.out.println(a.equals(b)); // true → 문자열 내용이 같음

🔎 예제 정리

String x = "apple";
String y = "apple";
String z = new String("apple");

System.out.println(x == y);       // true → 리터럴은 같은 참조
System.out.println(x == z);       // false → new로 만든 객체는 별도 주소
System.out.println(x.equals(z));  // true → 문자열 내용 같음

🔥 핵심 요약

 

구분  == .equals()
비교 대상 참조(주소) 실제 값(내용)
기본형 값 비교 사용 불가
객체형 같은 인스턴스인지 같은 내용을 가지는지
오버라이딩 불가능 가능 (많이 씀)

 

728x90