본문 바로가기

JAVA/복습

null과 NullPointerException

null과 NullPointerException 차이

 

참조 타입 변수는 힙 영역의 객체를 참조하지 않는다는 뜻으로  null 값을 가질 수 있다.

 

null  값도 초기값으로 사용할 수 있기때문에

null로 초기화된 참조 변수는 '스택 영역'에서 생성된다.

 

참조 타입 면수가 null 값을 가지는지 확인 방법

 

" ==, != 연산을 수행하자"

 

refVar == null  //결과: false
refVar != null  //결과: true

 

 


예외 (Exception)

 

자바는 프로그램 실행 도중에 발생하는 오류를 예외라고 부른다.

 

예외가 발생하는 경우

 

1. 사용자의 잘못된 입력

2. 잘못된 코드 작성

 

이 중 참조 변수를 사용하면서 가장 많이 발생하는 예외 중 하나가

 

" NullPointerException "이 있다.

 

이 예외는 참조타입 변수를 잘못 사용하면 발생.

 

이게 어떤 말이냐면

 

참조 변수가 null을 가지고 있을 경우

참조 객체가 없으므로 변수를 통해 객체를 사용할 수가 없다.

 

만약, null 상태에서 있지도 않은 객체의 데이터나 메소드를 사용하는 코드를 실행한다면?

 

그때 발생하는 것이 NullPointerException이다.

 

int[] intArray = null;
intArray[0] = 10;    <----NullPointerException 예외 발생

  해석: intArray는 배열 변수이므로 참조변수, 그래서 null로 초기화가 가능하다.

이 상태에서 intArray[0]에 10을 저장하려고 하면 NullPointerException이 발생하는 것이다.

 

왜냐하면 intArray 변수가 참조하는 배열 객체가 없기 때문이다.

 

 

 

 

 

'JAVA > 복습' 카테고리의 다른 글

객체와 클래스  (0) 2021.09.12
객체 지향 프로그래밍  (0) 2021.09.10
변수(variable)  (0) 2021.09.09
기본타입과 참조형 타입  (0) 2021.09.04
for each 문  (0) 2021.09.04