Coding/JAVA

[JAVA]NullPointerException

민톨이 2024. 8. 23. 00:07
728x90

📋 NullPointerException이란?

- 이름 그대로 null을 가리킬 때에 발생하는 예외이다. null은 없다는 뜻이므로 결국 주소가 없는 곳을 찾아갈 때 발생하는 예외이다.

- 객체를 참조할 때는, .(dot)을 사용하여 참조값을 사용해 해당 객체를 찾아갈 수 있다. 그러나 참조값이 null이면 값이 없다는 뜻이므로, 찾아갈 수 있는 객체(인스턴스)가 없다. NullPointerException은 이처럼 null에 .을 찍었을 때에 발생한다.

 

📋 예제1 (지역변수가 null인 경우)

public class NullMain2 {

    public static void main(String[] args) {
        Data data = null;
        data.value = 10; //NullPointerException 예외 발생
        System.out.println("data = " + data.value);
    }
}

 

Data data가 null인데 data.value에 10을 넣으면 ? null에 .을 찍는 것이다

(data.value = null.value)

이렇게 NullPointerException이 떠버린다.


📋 예제2 (멤버변수가 null인 경우)

BigData라는 클래스가 있고 그 클래스의 멤버변수들을 가지고 만든 main이 있다고 치자.

BigData의 Data data는 초기값이 null이다. 

그러면 bigData.data는 null이된다. 

그런데 맨 밑 print를 보면 bigData.data.value라고 했으니 이건 null에 .을 찍은 것과 같다. 

====> 고로 NullPointerException이 발생한다.

이건 출력결과.