배열 - 얕은 복사/ 깊은 복사

2023. 1. 10. 18:08프로그래밍 언어/JAVA

얕은 복사
String[] arr = {"red", "blue", "green"};

//얕은 복사
String[] b = arr;

for(int i = 0; i < b.length; i++) {
	System.out.println(b[i]);
}

 얕은 복사의 방법은 이렇다.

얕은 복사를 사용할 때 주의할 점은 다른 배열의 값을 바꾸면 오리지널 배열의 값도 바뀐다.

왜냐하면 같은 주소값을 사용하기 때문이다. 

 

 

//깊은 복사
String[] a = {"aaaaaa", "bbbbbb", "ccccccc"};

String[] b = new String[3];

b[0] = a[0];
b[1] = a[1];
b[2] = a[2];

System.out.println(b[0]);	//aaaaaa
System.out.println(b[1]);	//bbbbbb
System.out.println(b[2]);	//cccccc

깊은 복사의 방법은 이렇다.

깊은 복사에서는 b 배열의 값을 바꾸어도 a 배열의 값을 바꾸지 않는다.

왜냐하면 다른 주소값을 사용하기 때문이다.

'프로그래밍 언어 > JAVA' 카테고리의 다른 글

객체의 라이프 사이클  (0) 2023.01.20
자바 - 상속(Inheritance)  (0) 2023.01.18
Scanner - next()  (0) 2023.01.06
Scanner - nextLine(), nextInt() 비교  (0) 2023.01.06
3 - 제어문  (0) 2023.01.03