Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java 배열의 기본값 완벽 정리: 타입별 초기화 값 한눈에 보기

Java는 동일한 타입의 요소들을 고정된 크기로 순차적으로 저장하는 자료구조인 배열(array)을 제공합니다. 배열은 데이터 집합을 저장하는 용도로 사용되지만, 같은 타입의 변수들을 하나로 묶어놓은 컬렉션이라고 생각하면 더 쉽게 이해할 수 있습니다.

Java에서 배열을 생성할 때 별도로 값을 할당하지 않으면, 컴파일러가 자동으로 기본값(default value)을 지정해 줍니다. 타입별 기본값은 다음과 같습니다.

  • boolean → false
  • int → 0
  • double → 0.0
  • 객체(Object) 참조 타입 → null

예제 코드

아래 예제는 String, int, double, boolean, 그리고 사용자 정의 객체(Tester) 배열을 각각 생성한 뒤, 값을 할당하지 않은 상태에서 기본값이 무엇으로 설정되는지 확인하는 코드입니다.

public class Tester {
    public static void main(String[] args) {
        System.out.print("Default values (String array):");
        String strings[] = new String[5];
        for (String s : strings) {
            System.out.print(s + " ");
        }
        System.out.println();
        System.out.print("Default values (int array):");
        int numbers[] = new int[5];
        for (int val : numbers) {
            System.out.print(val + " ");
        }
        System.out.println();
        System.out.print("Default values (double array):");
        double doubles[] = new double[5];
        for (double val : doubles) {
            System.out.print(val + " ");
        }
        System.out.println();
        System.out.print("Default values (boolean array):");
        boolean booleans[] = new boolean[5];
        for (boolean val : booleans) {
            System.out.print(val + " ");
        }
        System.out.println();
        System.out.print("Default values (Object array):");
        Tester testers[] = new Tester[5];
        for (Tester val : testers) {
            System.out.print(val + " ");
        }
    }
}

실행 결과

Default values (String array):null null null null null
Default values (int array):0 0 0 0 0
Default values (double array):0.0 0.0 0.0 0.0 0.0
Default values (boolean array):false false false false false
Default values (Object array):null null null null null

핵심 정리

위 실행 결과를 통해 알 수 있듯이, Java에서 배열을 선언만 하고 초기화하지 않아도 JVM이 자동으로 타입에 맞는 기본값으로 채워줍니다. 참조 타입(String, 사용자 정의 클래스 등)은 null, 정수형(int)은 0, 실수형(double)은 0.0, 논리형(boolean)은 false가 기본값입니다.

참고로 이러한 자동 초기화는 배열이나 인스턴스 변수(필드)에만 적용되며, 메서드 내부에 선언된 지역 변수(local variable)는 반드시 사용 전에 명시적으로 초기화해야 합니다. 지역 변수를 초기화하지 않고 사용하면 컴파일 에러가 발생하므로 주의해야 합니다.