- 배열의 선언
배열(Array)은 변수 혹은 상수의 모음입니다. 어떠한 자료형에도 사용 가능하며, 메모리 공간에 할당될 때에는 배열에 포함된 요소들이 연속 할당되는 것이 특징입니다.
단, 하나의 배열은 하나의 자료형으로 통일되며, 이는 일반적인 변수와는 사용법이 조금 다릅니다.
import java.io.*;
class Main {
public static void main(String[] args) {
int [] Array = new int[10];
}
}
5번째 줄에 대괄호와 함께 Array 가 선언되어 있습니다. 바로 배열이 선언된 부분입니다. 먼저 대입 연산자 왼쪽에 위치한 int [] Array를 살펴보겠습니다.
Array라는 int 형 변수를 선언했는데 int와 Array 사이에 대괄호("[]")가 있습니다. 바로 이 대괄호 표시가 배열형 변수라는 뜻으로 사용됩니다. 즉, Array 변수는 배열이라는 것을 나타내는 것이죠. 이번에는 대입 연산자 오른쪽 new int [10]; 을 살펴봅시다.
new라는 새로운 용어(키워드)가 나왔습니다. new는 변수에 메모리 공간을 할당할 때 사용하는 용어(키워드)로, 참조형 자료형에 메모리 공간을 할당할 때 사용합니다. 참조형 자료형은 앞에서 설명했듯이 기본형을 제외한 나머지 자료형을 모두 참조형이라고 합니다.
int, double, char 등과 같은 기본형 자료형은 선언과 동시에 자동으로 메모리에 공간이 할당되어 new를 사용하지 않았지만, 참조형 자료형의 경우 new를 사용하여 메모리를 할당하지 않으면 사용할 수 없습니다.
그런데, 위 예제에서 int 형 배열 자료형으로 선언했음에도 new를 통해 메모리를 할당해 주는 것을 확인할 수 있습니다. 기본형 자료형을 사용했을지라도 배열은 그 자체로 참조형 이기 때문입니다.
다시 위 예제로 돌아가 설명하면, int [] Array = new int [10]; 문장은 "int 형 변수를 10칸 저장할 수 있는 배열을 생성한다" 고 해석됩니다. 즉, Array 배열 변수는 int 형 10칸짜리 배열이 되는 것이죠.
- 배열 사용하기
배열을 사용할 때 한 가지 유의해야 할 점은 바로 배열의 순서는 1부터 시작하는 것이 아니라, 0부터 시작한다는 것입니다. 즉 10칸의 배열이 선언되어 메모리를 할당받으면, 메모리에는 순서가 0부터 시작하는 10칸의 메모리 공간이 생성됩니다.
위 그림은 Array [10]이라고 변수를 선언했을 때 메모리에 할당되는 10칸이 어떻게 할당되는지를 나타내는 그림입니다. 10칸의 변수를 선언하면 0~9까지의 번호를 가진 메모리 공간이 할당되는 것이죠.
n칸의 배열을 생성했다면, 그 배열은 0번 메모리부터 (n-1) 번 메모리까지 사용할 수 있습니다.
import java.io.*;
class Main {
public static void main(String[] args) {
int [] Array = new int[10];
Array[0] = 1;
Array[3] = 5;
//Array[10] = 10; 잘못된 사용법입니다.
System.out.println(Array[0]);
System.out.println(Array[3]);
}
}
위 예제에서 7번째, 8번째 줄에서 배열을 사용하고 있습니다.
- 7번째 줄은 Array 배열에서 0번째 칸에 1이라는 값이 초기화되는 코드 입니다.
- 8번째 줄은 Array 배열에서 3번째 칸에 5 라는 값이 초기화되는 코드 입니다.
9번째 줄처럼, 배열을 사용할 때 할당된 공간 이상의 배열 칸에 접근하려고 하면 프로그램이 실행 중에 오류가 나므로 주의해서 사용하시기 바랍니다.
'비전공자의 개발과 친해지기 > 배열' 카테고리의 다른 글
[JAVA : 배열]2. 배열과 반복문 / 2차원 배열 (0) | 2022.04.10 |
---|