본문 바로가기
IT관련 정보

Java 공부편 - NullPointerException

by 라온퐝 2024. 2. 28.

NullPointerException이란?

NullPointerException은 이름 그대로 null을 가리키다(Pointer)인데, 이때 발생하는 예외(Exception)입니다. null은 없다는 뜻이므로 결국 주소가 없는 곳을 찾아갈 때 발생하는 예외입니다.

객체를 참조할 때는.(dot)을 사용합니다. 이렇게 참조값을 사용해서 해당 객체를 찾아갈 수 있는데 참조값이 null이라면 없다는 뜻이므로 찾아갈 수 있는 객체(인스턴스)가 없게 됩니다. NullPointerException은 이처럼 null에.(dot)을 찍었을 때 발생합니다.

EX)

NullPointerException

data 참조형 변수에 null 값이 들어가 있으므로 data.value에서 data의 참조할 주소가 존재하지 않게 됩니다. 따라서 참조할 객체 인스턴스가 존재하지 않으므로 결과값에 java.lang.NullPointerException이라는 오류가 발생되면서 프로그램이 종료가 됩니다.

멤버 변수와 null

앞에 예제와 같이 지역 변수의 경우에는 null 문제를 파악하는 것이 쉬우나 다음과 같이 멤버 변수가 null인 경우에는 주의가 필요합니다.

EX)

NullMain3

BigData를 생성하면 BigData의 인스터스가 생성이 됩니다. 이때 BigData 인스턴스의 멤버 변수에 초기화가 일어나는데 BigData의 data 멤버 변수는 참조형이므로 null값으로 초기화됩니다. count 멤버 변수는 숫자이므로 0으로 초기화됩니다.

따라서 bigData.data.value값을 출력하려면 bigData의 참조값이 x001이라 치면 x001.null.value 이렇게 해석이 되므로 중간에 null값이 있어서 참조할 곳이 없으므로 NullPointerException 예외가 발생하게 됩니다.

이 오류를 해결하기 위해서는 data값에 참조할 곳을 만들어 주면 됩니다.

NullMain4

위와 같이 해결하면 결과값에 NullPointerException을 해결할 수가 있습니다.

 

반응형