본문 바로가기
Programming

자바 배열 선언 2차 배열 0으로 초기화 하는 방법 java.lang.NullPointerException

by 하하호호 2022. 3. 22.
반응형

 

 

 

 

자바 배열 초기화 하는 방법

JAVA를 사용하면서 배열 초기화를 진행하지 않으면 java.lang.NullPointerException 에러메세지를 만나게 된다. 제대로 된 배열 초기화가 진행되지 않았기 때문에, 배열의 인자에 접근이 불가능한게 가장 큰 원인이다. 배열 초기화를 진행하기 위해서는 new 키워드를 사용해줘야 한다.

 

 

아래 예시를 보면 최초 배열 초기화를 진행해주지 않았기 때문에 NullPointerException 에러가 발생한다.

public class ArrayTest {
    public static int[][] testArray;
    public static void main(String[] args){
        for(int i=0; i<10; i++){
            for(int j=0; j<10; j++){
                System.out.println(testArray[i][j]);
            }
        }
    }
    
}

 

 

아래 예시에서는 new int[][]; 형식으로 2차 배열을 초기화 해주고 있다. 배열의 크기는 [세로][가로] 순서로 인자를 입력하여 배열의 크기를 지정해주면 된다. 초기화된 배열의 인자들이 가지는 초기값은 '0' 이다. 아래 예시의 결과값은 다음과 같다.

public class ArrayTest {
    public static int[][] testArray;
    public static void main(String[] args){

        testArray = new int[100][100];

        for(int i=0; i<10; i++){
            for(int j=0; j<10; j++){
                System.out.print(testArray[i][j]);
            }
            System.out.println();
        }
    }
    
}

 

 

결과

0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000

 

 

boolean 타입 배열 초기화

 

만약 int 형 배열이 아닌 boolean 타입 배열은 선언하고자 한다면 배열의 선언 타입만 변경해주면된다. boolean 타입 배열의 초기값은 false가 할당된다.

/*
    Owner : Developer Blog
    Title : 2차 배열 초기화
    Date : 2022-03-22
*/

public class ArrayTest {
    public static boolean[][] testArray;
    public static void main(String[] args){

        testArray = new boolean[100][100];

        for(int i=0; i<10; i++){
            for(int j=0; j<10; j++){
                System.out.print(testArray[i][j]+" ");
            }
            System.out.println();
        }
    }
    
}

 

결과

false false false false false false false false false false 
false false false false false false false false false false 
false false false false false false false false false false 
false false false false false false false false false false 
false false false false false false false false false false 
false false false false false false false false false false 
false false false false false false false false false false 
false false false false false false false false false false 
false false false false false false false false false false 
false false false false false false false false false false

 

 

만약 NullPointerException 에러를 만났다면 90% 이상은 배열 초기화를 진행하지 않아서 찾을 수 없는 인자값을 참조하려고 시도할 때 발생한다는 점 잊지말자.

 

 

당신을 위한 콘텐츠

 

 

JAVA StringBuilder란? StringBuffer란? 차이점 및 사용하는 이유

String 클래스 한계점 JAVA에서 String 객체를 사용하는 것은 메모리할당 및 해제를 사용한다. String 객체는 불변 객체이기 때문에 두개의 String 객체를 더하게 되면 새로운 String 객체가 탄생하게 된다

incomeplus.tistory.com

 

 

JAVA BufferedReader와 BufferedWriter 사용법

Scanner나 System.out.print() 사용해서 입출력을 만들게 되면 메모리에 상당한 부담이 가해지게 된다. 이를 방지하기 위해서 버퍼를 사용해서 입출력 효율을 올릴 수 있다. 데이터 처리양이 많을 때 유

incomeplus.tistory.com

 

 

백준 알고리즘 2798번 블랙잭 문제 JAVA

백준 알고리즘 2798번은 모든 경우의 수를 생각하는 브루트 포스 문제다. 자바로 알고리즘을 만들어보자. 입력값은 n과 m이 주어진다. n은 카드의 갯수이며, m은 카드의 조합으로 가장 가까운 수를

incomeplus.tistory.com

 

반응형

댓글