반응형
이번 글에서는 배열을 비교할 때 == 연산자가 어떻게 동작하는지를 예제를 통해 확인해봅니다.
자바에서 배열은 객체이기 때문에, ==을 사용하면 값이 아닌 '주소(참조값)'를 비교하게 됩니다.
📌 예제 코드
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() 같은 메서드를 사용해야 함
'프로그래밍 > JAVA' 카테고리의 다른 글
23. 문자열 비교 - == vs .equals() (0) | 2025.04.21 |
---|---|
22. 가비지 컬렉션과 참조 제거 (1) | 2025.04.21 |
21. break문 - 반복문 강제 종료하기 (0) | 2025.04.21 |
19. continue문을 이용한 반복 제어 예제 (0) | 2025.04.21 |
18. do-while문을 이용한 사용자 입력 반복 예제 (0) | 2025.04.18 |
17. While문을 이용해서 1부터 100까지 합을 계산해보기 (0) | 2025.04.18 |