728x90
배열
배열 - 같은 종류의 메모리를 쉽게 쉽게 만드는 방법
문법 - 데이터타입[] 변수명 = new 데이터타입[개수];
ex) int[] arr = new int[5];
배열의 개수는 int 타입의 최대 값과 같다.
// 배열 사용 전
int i1, i2, i3, i4, i5;
// 배열 선언
int[] arr1 = new int[5];
배열 메모리에 접근
문법 - 배열변수[인덱스] = 값;
ex) arr1[0] = 100;
-배열의 인덱스는 0부터 시작.
-인덱스의 범위는 0 ~ (배열개수 - 1)
int[] arr1 = new int[5];
// 배열 메모리에 접근
arr1[0] = 100;
arr1[1] = 200;
arr1[2] = 300;
arr1[3] = 400;
arr1[4] = 500;
배열이 필요할 때: 같은 종류의 메모리를 많이 다룰 경우
int a1, a2, a3, a4, a5;
a1 = 100;
a2 = 90;
a3 = 80;
a4 = 70;
a5 = 60;
int sum1 = a1 + a2 + a3 + a4 + a5;
int[] arr1;
arr1 = new int[5];
arr1[0] = 100;
arr1[1] = 90;
arr1[2] = 80;
arr1[3] = 70;
arr1[4] = 60;
int sum2 = 0; // 변수 선언
for (int item : arr1) {
sum2 = sum2 + item;
}
// 밑에 있는 코드보다 편하다.
/*
for (int i = 0; i < arr1.length; i++) {
sum2 = sum2 + arr1[i];
}
*/
배열 - 배열 레퍼런스와 배열 인스턴스
int[] arr1 = new int[5];
arr1 - 값이 아닌 메모리의 주소를 담는 변수 '레퍼런스'
new int[5] - new 명령은 사용할 메모리를 확보(연속된 5 개의 int 타입 메모리를 준비)
값을 저장하는 메모리를 "인스턴스"
배열 인스턴스의 주소를 다른 레퍼런스에 담을 수 있다.
int[] arr1;
arr1 = new int[5];
int[] arr2 = arr1;
// arr2와 arr1은 같은 배열 인스턴스를 가리킨다.
arr2[0] = 100;
// arr2를 통해 값을 저장한 후, arr1을 통해 값을 꺼낼 수 있다.
System.out.println(arr1[0]);
배열 레퍼런스와 null
int[] arr1;
arr1 = new int[5];
// 배열 레퍼런스를 초기화시키고 싶다면 null로 설정하라.
arr1 = null; // 0으로 설정. 즉 레퍼런스가 아무것도 가리키지 않음을 의미.
*레퍼런스가 배열 인스턴스를 가리키지 않은 상태에서 사용시 실행 오류!