JAVA

[JAVA] 배열의 생성 및 선언

싱숭셩숭 2025. 3. 31. 22:06

https://school.programmers.co.kr/learn/courses/30/lessons/120808


배열의 특징

  • 같은 타입의 데이터만 저장할 수 있다
  • 한 번 생성된 배열의 길이를 변경할 수 없다

배열 선언

  • 두 가지 형식으로 선언 가능하다
    • 타입[] 변수;
    • 타입 변수[];
// 형식 1
int[] intArray;    // 배열 변수를 선언했지만, 아직 배열 객체를 생성하지 않음
double[] doubleArray;
String[] strArray;

// 형식 2  
int intArray[];  
double doubleArray[];  
String strArray[];
  • 배열 변수는 참조 변수에 속하기에, 참조할 배열 객체가 없다면 배열 변수는 null 값으로 초기화될 수 있다
    • 타입[] 변수 = null;
      • 이 상태에서 배열을 사용하려고 하면, 배열 변수가 가리키는 주소가 없기 때문에 NullPointerException이 발생
    • 참조 변수란? 객체의 주소를 저장하는 변수
      • 기본 타입(int, double, boolean 등)은 값 자체를 저장하지만, 배열은 객체라서 주소를 저장함

배열 객체 생성

1. 값 목록 이용

// 타입[] 변수 = { 값0, 값1, 값2, 값3, ... };

String[] names = {"신짱구", "김철수", "한유리"};

2. new 연산자 이용 (1)

// 타입[] new 변수 = { 값0, 값1, 값2, 값3, ... };

String[] names = new String[] {"신짱구", "김철수", "한유리"};

차이점

String[] names;
names = {"신짱구", "김철수", "한유리"}; // 컴파일 에러

String[] names = null;
names = new String[] {"신짱구", "김철수", "한유리"};
  • 배열을 리터럴 {}로 초기화할 때는 선언과 동시에만 사용 가능함
  • 나중에 값을 할당하려면 new 타입[]을 사용해야 함

3. new 연산자 이용 (2)

값의 목록을 미리 정하지 않았다면, new연산자를 사용해 빈 배열을 만들 수 있다

(1) 배열 선언과 동시에 생성
타입[] 변수 = new 타입[길이];
int[] intArray = new int[5];    // 길이가 5인 int 배열 생성 (기본값 0으로 초기화됨)
(2) 배열 변수를 먼저 선언한 후, 나중에 생성
타입[] 변수 = null; // 배열 변수를 선언하지만 아직 배열을 생성하지 않음
변수 = new 타입[길이]; // 나중에 배열 객체를 생성하여 변수에 할당
int[] intArray = null; // 아직 배열을 생성하지 않음 (null 상태)
intArray = new int[5]; // 나중에 길이가 5인 배열을 생성

배열의 기본값

배열을 생성하면 기본값이 자동으로 초기화된다.

  • int[] 배열: 0
  • double[] 배열: 0.0
  • boolean[] 배열: false
  • String[] 또는 객체 배열: null