A null value cannot be assigned to a primitive type 에러가 발생했다. 

 

 

이건 기본형(primitive type) 에 null 값이 들어갔기 때문에 나는 에러이다. 

 

Ok. 원인파악 완료.

 

 

 

그런데 왜?? null 이 들어갈 수 없는거지? 

 

자바의 함수 호출방식은 두가지가 있다. 

 

Call by Value :  말 그대로 값을 저장하고 있는 상태 
Call by Reference : 데이터가 저장된 주소를 가지고 있는 상태 

 

 

기본형(primitive type)은 Call by Value 이며,

예) int, float,. ... 

 

참조형 타입(Reference type)는 Call by Reference라고 보면 된다.  

예) String, Integer, Array.. 

 

 

기본형들은 범위가 이미 지정되어 있을 분더러 값 자체를 가지고 오는데 

 

null 이라는 건 미확인 값이나 아직 적용되지 않은 값을 의미한다고 한다. 

 

그렇기 때문에 기본형( 값의 범위가 지정되어 있음)에는 null이 불가하고 

 

 

참조형 같은 경우는 Reference 값 즉 테이터가 아닌 데이터가 담긴 주소값을 가지고 있기 때문에 

null 설정이 가능하다고 이해하면 되겠다. 

 

주소는 있지만 값이 안들어 있을 순 있으니!

 

 

 

 

 

+ Recent posts