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 |