int[] a = new int[3];
a[0] = 1;
a[1] = 2;
a[2] = 3;
System.out.println(a[1]);// 2
System.out.println(a);// @2353b3e6 => 주소값
System.out.println(Arrays.toString(a));// [1, 2, 3]
int[] a = {1, 2, 3};
int[] b = null;
b = a; // 얇은 복사 (주소값 복사)
System.out.println(Arrays.toString(b));// [1, 2, 3]
b[1] = 20;
System.out.println(Arrays.toString(a));// [1, 20, 3]
int[] a = {1, 2, 3};
int[] b = new int[3];
for(int i=0; i<a.length; i++) b[i] = a[i];// 깊은 복사
b[1] = 99;
System.out.println(Arrays.toString(a));// [1, 2, 3]
System.out.println(Arrays.toString(b));// [1, 99, 3]
int[] a = {1, 2, 3};
int[] b = a.clone();// 전체 복사
int[] c = Arrays.copyOf(a, 3);// 시작점부터 원하는 길이만큼 복사
int[] d = copyOfRange(a, 1, 3);// 시작점도 지정할 수 있음
🐥원하는 인덱스에 필요한 값만 복사하고 싶을 때
int[] a = {1, 2, 3, 4, 5};
int[] b = new int[6];
System.arraycopy(a, 1, b, 2, 3);
System.out.println(Arrays.toString(b));// [null, null, 2, 3, 4, null]