본문 바로가기
개발 새발/JAVA

[Java] 자바 배열(array)

by recordari 2025. 4. 4.

프로그래밍에서 같은 타입의 여러 변수를 하나로 묶어 관리할 수 있는 구조를 배열(array) 이라고 한다. 배열을 사용하면 반복적인 변수 선언 없이 데이터를 효율적으로 저장하고 관리할 수 있다.

배열은 동일한 타입의 값들만 저장할 수 있다.
또한, 배열은 변수와 다르게 메모리상에 연속적인 공간에 저장된다. 이 특징은 배열의 빠른 접근을 가능하게 한다.

 

배열의 선언

자바에서는 배열을 두 가지 방식으로 선언할 수 있다.

타입 [] 변수이름; → 배열 선언

변수이름 = new 타입[길이]; → 배열 생성(실제 저장공간 생성)

// 선언 방식 1
int[] numbers;
String[] names;

// 선언 방식 2
int numbers[];
String names[];​

 

배열의 생성

배열을 사용하려면 선언뿐만 아니라 생성(메모리 공간 확보) 이 필요하다.

int[] numbers;               // 배열 선언
numbers = new int[5];        // 배열 생성 (정수 5개 저장 공간 확보)​

 

선언과 생성을 한 줄로 작성할 수도 있다.

int[] numbers = new int[5];

 

배열의 길이와 인덱스

  • 배열의 각 공간은 요소(Element) 라고 하며, 배열이름[인덱스] 형식으로 접근한다.
  • 인덱스는 0부터 시작하며, 마지막 인덱스는 "배열 길이 - 1"이다.
배열의 값을 저장하고 읽어오는 방법은 ‘배열이름[인덱스]’로 하면 된다.
numbers[2] = 100; // 세 번째 요소에 100 저장

배열의 인덱스 범위를 벗어나면 실행 중 오류(Runtime Error) 가 발생한다. 컴파일은 되지만 실행 중 예외가 발생하므로 주의가 필요하다.

 

 

배열의 길이 확인

배열의 길이는 .length 속성을 통해 확인할 수 있습니다.

int[] arr = new int[5];
int tmp = arr.length; // tmp에 5가 저장됨

배열의 길이는 Int 범위의 양의 정수(0도 포함)이어야 한다.

 

배열의 길이 변경

한 번 생성된 배열은 길이를 바꿀 수 없기 때문에, 배열의 크기를 변경하려면 다음과 같은 과정을 거쳐야 한다:

  1. 더 큰 크기의 새 배열 생성
  2. 기존 배열의 내용을 새 배열로 복사

이 과정은 비용(연산량) 이 크므로, 배열을 확장해야 할 가능성이 있다면 처음부터 충분한 크기로 만들어두는 것이 좋다. 예를 들어 기존 배열의 2배 크기로 생성하는 방식이 흔히 사용된다.

 

배열의 초기화

배열은 생성될 때 각 요소가 해당 타입의 기본값으로 자동 초기화된다.

  • int 배열 → 0
  • boolean 배열 → false
  • String 배열 → null

값을 직접 지정해 초기화할 수도 있다:

int[] numbers = new int[] {20, 30, 10, 20, 80};
 

 

또는 선언과 동시에 간단히 초기화할 수도 있다:

int[] numbers = {20, 30, 10, 20, 80};

 

배열을 다룰 때는 항상 타입 일치, 인덱스 범위, 초기화 여부를 주의!

 

(이 글은 자바의 정석을 보고 정리하였습니다)