1. 배열

2018. 7. 1. 16:54

int aa[] = {0,0,0};
int bb[] = aa;
int cc[] = aa.clone();

bb[1]=3;
cc[1]=5;

System.out.println(Arrays.toString(aa));
System.out.println(Arrays.toString(bb));
System.out.println(Arrays.toString(cc));


bb는 aa배열을 참조하고 cc는 aa배열을 복사한다.(clone 메서드 사용)


이때 출력 결과는 다음과 같다.


aa [0, 3, 0]

bb [0, 3, 0]

cc [0, 5, 0]


이와 같이 나오는 이유는 


1. bb는 aa의 주소를 참조하기 때문에 bb[1]=3 으로 수정했을때 aa도 변하게 된다. 

   즉, aa, bb 배열이 2개가 아니라 1개의 배열을 2개의 변수로 참조하고 있는 것이다.


2. cc는 aa를 복사했기 때문에 새로운 배열을 참조하게 된다. 


쉽게 생각하면 aa=bb 이고 aa!=cc가 된다.

'Get IT Note > Java' 카테고리의 다른 글

6. String, StringBuffer, StringBuilder 의 차이점  (0) 2018.07.04
5. 불변객체와 가변객체  (0) 2018.07.04
4. ArrayList와 Array간 변환  (0) 2018.07.03
3. 예외처리  (0) 2018.07.03
2. 난수(Random)  (0) 2018.07.01

BELATED ARTICLES

more