배열의 데이터타입
- int[] : 참조 타입(Reference Type)
- 연속된 메모리 값을 사용한다.
배열의 길이 늘리기
- 배열의 길이는 변경할 수 없다.
- 늘어난 길이의 새로운 배열을 만들고,
기존 배열의 값을 모두 새로운 배열로 옮기고,
기존 배열의 참조값을 새로운 배열의 참조값으로 수정한다.
즉, arr 0x123 arr[0]=10000, arr[1]=20000
arr 0x456만들고, arr[0]=10000, arr[1]=20000를 arr 0x456으로 옯기고
arr 0x123을 arr 0x456으로 수정한다.
예시
- 길이가 5인 배열을 길이가 1000인 배열로 바꾸기
int[] arr = {1, 2, 3, 4, 5};
늘어난 길이의 새로운 배열을 만들고
int[] temp = new int[1000];
기존 배열의 값을 모두 새로운 배열로 옮기고
System.arraycopy(arr, 0, temp, 0, arr.length);
기존 배열의 참조값을 새로운 배열의 참조값으로 수정한다.
arr = temp;
arr 배열의 길이는 1000이 된다.
System.out.println(arr.length);
배열의 모습을 문자로 출력한다.
System.out.println(Arrays.toString(arr));
출력:
[1, 2, 3, 4, 5, 0, 0, ...]