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
배열로 들어간다.