int[] a={10,9,8,7,6};
int[] c=a;
Arrays.sort(a);
System.out.println(Arrays.toString(a));
System.out.println(Arrays.toString(c));
이거 한 번 실행해보세요
c까지 같이 정렬되는 이유는 우선 배열 저장하는 방식을 알아야 합니다.
일단 쉽게 설명하자면,
int[] a={10,9,8,7,6}; // a 는 아파트 x의 주인입니다. x의 0층에는 10, 1층에는 9, ... , 4층에는 6이 살고 있어요
int[] c=a; // c도 x의 주인이 되었습니다.
Arrays.sort(a); // a의 아파트를 정렬했어요.
System.out.println(Arrays.toString(a)); // a의 아파트가 정렬됐네요
System.out.println(Arrays.toString(c)); // c의 아파트도 정렬됐네요.
이제 이론적으로 들어가보겠습니다.
a={10,9,8,7,6}하면 a는 메모리 주소(address) x가 되고,
x에 10, x+1에 9, ... , x+4에 6을 저장합니다.
( System.out.println(a); 해보면 이상한 값이 나오는데 그게 바로 주소x 에요. )
c=a하면 c도 x가 됩니다.
그러니 sort(a) 하면 c도 같이 바뀝니다.