배열 선언 및 생성
// 배열 선언
int [] numArr1;
int numArr2[];
// 배열 생성
numArr1 = new int[10];
// 배열 초기화
numArr2 = {4, 3, 2, 1, 0};
// 배열 선언과 생성
int[] numArr3 = new int[100];
레퍼런스 변수
int [] numArr1;
int numArr2[];
배열 선언만으로는 배열 공간이 할당되지 않고 레퍼러스 변수만 생선된다.
배열 생성
numArr1 = new int[10];
레퍼런스 변수에 new 연산자를 이용하여 배열을 생성하고 [] 안에 원소의 개수를 지정한다.
배열 인덱스
int numArr = new int[5]; // 배열 생성
numArr[0] = 100; // 0번째 인덱스에 100 저장
numArr[3] = 200; // 3번째 인덱스에 300 저장
int num = numArr[0]; // 변수 n에 numArr[0] 저장
자바에서는 인덱스에 음수를 사용할 수 없다.
레퍼런스 치환과 배열 공유
int numArr[] = new int[5];
int myArr[] = numArr; // numArr과 myArr은 동일한 배열 참조
numArr[0] = 1;
myArr[1] = 5;
System.out.println(numArr[0]); // 1
System.out.println(myArr[0]); // 1
System.out.println(numArr[1]); // 5
System.out.println(myArr[1]); // 5
myArr[0] = 100;
System.out.println(numArr[0]); // 100
System.out.println(myArr[0]); // 100
numArr과 myArr이 독립적으로 존재하는 것이 아니라, myArr은 numArr의 주소(레퍼런스)를 복사한 것이므로 서로 배열을 공유한다.
배열의 길이(length)
int[] numArr = new int[5];
int sizeNum = numArr.length; // 5
int[] myArr = new int[5];
myArr[0] = 1;
myArr[1] = 2;
myArr[2] = 3;
int sizeMy = myArr.length; // 5
// 2차원 배열 선언
int [][] numArr1;
int numArr2 [][];
// 2차원 배열 생성
numArr1 = new int[3][5]; // 3행 5열의 2차원 배열 생성
numArr2 = new int[9][3]; // 9행 3열의 2차원 배열 생성
// 2차원 배열의 길이
colLength = numArr1.length; // 2차원 배열의 행의 개수
rowLength = numArr1[0].length; // 0번째 행의 열의 개수
// 2차원 배열의 초기화
int[][] numArr3 = {{1, 2, 3}, {4, 5, 6}}; // 2행 3열 2차원 배열 생성
비정방형 배열
int i[][] = new int[4][];
i[0] = new int[1];
i[1] = new int[2];
i[2] = new int[3];
i[3] = new int[4];
