배열 복사
얕은 복사 (shallow copy)
- 주소값만 복사해서 같은 Heap 객체를 참조하게 되는 방식
int[] arr1 = new int[3];
int[] arr2 = arr1;
// 같은 주소를 참조 (공유됨)

⚠️ 둘 중 하나를 변경하면 서로에게 영향 미침
깊은 복사 (deep copy)
- 새로운 배열 생성 후 데이터를 복사해서 서로 독립된 배열로 만드는 방식
// 1. for문
for (int i = 0; i < arr1.length; i++) {
arr2[i] = arr1[i]; }
// 2. System.arraycopy
System.arraycopy(arr1, 0, arr2, 0, arr1.length);
// 3. Arrays.copyOf
int[] arr2 = Arrays.copyOf(arr1, arr1.length);
// 4. clone()
int[] arr2 = arr1.clone();

⚠️ 유의할 점
- 얕은 복사와 깊은 복사의 차이를 실습하면서 감각적으로 익히는 것이 중요
- 특히 객체 배열일 경우, 깊은 복사를 안 하면 예상치 못한 오류 발생 가능
'Study > Pullstack-Webdevelop' 카테고리의 다른 글
| 수업9일차_OOP 필드/생성자 (2.20) (0) | 2025.03.04 |
|---|---|
| 수업7일차_OOP 객체지향언어 (2.19) (0) | 2025.03.04 |
| 수업5일차_배열(2.17) (0) | 2025.03.04 |
| 수업3-4일차_제어문(2.13-14) (0) | 2025.03.04 |
| 수업3일차_연산자(2.12) (0) | 2025.03.04 |