프로그래밍/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() 같은 메서드를 사용해야 함