int [] arr;
type [ ] variable ;
int [] arr = new int [5];
type [ ] variable = new type [ length ] ;
int [] arr = new int [] {1, 2, 3};
int [] arr = {1, 2, 3}; // new int [] 생략
// 99% 두번째 생략 방식을 사용
// array = {1, 2, 3}; // 단독으로 사용시 에러 (생략 불가)
type [ ] variable = { value, value, value } ;
arr[0] = 10;
💡 배열의 길이 : arr .length ; (int 형 상수) (⚠️ read only)
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
System.out.println(Arrays.toString(arr));
반복문을 이용한 배열 요소 값 출력
Arrays 클래스에 있는 toString() 메서드를 이용해서 한번에 출력
Console → [1, 2, 3]
System.arraycopy(num, 0, newNum, 0, num.length);
System.arraycopy(src, srcPos, dest, destPos, length);
num[0] 에서 newNum[0] 으로 num.length 개의 데이터 복사
src : 원본 소스srcPos : 원본 시작 인덱스dest : 복사 대상destPos : 복사 시작 인덱스length : 원본에서 복사본으로 읽을 데이터 길이int [] arr = new int [5];
위에 배열의 데이터 크기는 int (4 byte) * 5개로 총 20 byte 다.
실행하면 메모리에 비어있는 20 byte 공간을 찾아 할당한다. 📝
그 이후에 배열을 늘린다고 한다면 앞뒤로 연속적인 공간이 필요한데
비어있을거란 보장이 없기 때문에 못늘리도록 규정 💥
길이가 부족할 때 해결 방법은 더 큰 배열을 생성 후 기존 배열을 복사하는 것
int [] arr = {1, 2, 3};
System.out.println(arr);
Console →
[I@143118bb
[ 의 의미는 배열이라는 뜻I 의 의미는 int (정수) 라는 뜻@ 의 의미는 위치라는 뜻C:\workspace\>java classname argument argument
public static void main(String[] args){}
main 메서드 매개변수인 args 배열로 들어간다.