프로그래밍/JAVA

20. 배열의 비교 - 참조값 vs 값

설매향 2025. 4. 21. 12:09
반응형

이번 글에서는 배열을 비교할 때 == 연산자가 어떻게 동작하는지를 예제를 통해 확인해봅니다.
자바에서 배열은 객체이기 때문에, ==을 사용하면 값이 아닌 '주소(참조값)'를 비교하게 됩니다.


📌 예제 코드

public class CompareExample {
	public static void main(String[] args) {
		int[] arr1, arr2, arr3;
		arr1 = new int[] { 1, 2, 3 };
		arr2 = new int[] { 1, 2, 3 };
		arr3 = arr2;

		System.out.println(arr1 == arr2);
		System.out.println(arr2 == arr3);
	}
}

💬 코드 설명

  • arr1 = new int[] { 1, 2, 3 };
    새로운 배열 객체를 생성해서 arr1에 저장
  • arr2 = new int[] { 1, 2, 3 };
    또 다른 배열 객체를 생성해서 arr2에 저장
  • arr3 = arr2;
    arr3는 arr2와 같은 배열 주소를 참조하게 됨
  • System.out.println(arr1 == arr2);
    서로 다른 배열 객체 → 주소가 다르므로 false 출력
  • System.out.println(arr2 == arr3);
    같은 배열을 참조하고 있으므로 true 출력

💻 실행 결과

false
true

💡 포인트 정리

  • == 연산자는 기본형에서는 값 비교, 참조형에서는 주소 비교
  • 배열은 객체이기 때문에 ==으로 비교하면 값이 같아도 false가 나올 수 있음
  • 배열의 내용이 같은지 비교하려면 Arrays.equals() 같은 메서드를 사용해야 함