본문 바로가기

JAVA/JAVA

int, long 타입과 같은 Primitive type null 값이 안 들어가는 이유

728x90

1. 이유

int, long 타입 변수는 기본형(Primitive type) 변수입니다.

기본형 변수는 null 값이 없습니다. 실제 값을 저장 장소를 가져서, 값이 없으면 0을 반환합니다.

 

기본형 변수는 값이 없으면 아래의 값처럼 나오지만, null은 나오지 않습니다.

 

Data Type Default Value (for fields) 

Java의 기본 요소에 대한 기본값 

 

byte 0

short 0

int 0

long 0L

float 0.0f

double 0.0d

char '\u0000'

boolean false

2. 대처 방안

기본 데이터 유형은 null 일 수 없습니다. Object 데이터 유형 만 null 일 수 있습니다.

그래서 정수(int)가 null이 될 수 있도록 할려면 Integer, long 은 Long 타입을 대신 선언해야합니다.

 

예시)

Long id;

Integer id;

 

Integer, Long형 변수는 객체형 변수로서 참조형(Reference Type)입니다, 즉 실제 값이 아닌 객체의 주소를 저장하고 있죠 그렇기에 Null을 가질 수 있습니다.

 

3. 추가(Enum 타입)

enum은 equals 메서드를 쓸 필요가 없습니다. 열거 타입은 인스턴스들이 고정되어 있으므로 간단하게 ==을 사용하면 됩니다. equals 를 실행한다고 해도 결국 == 검사를 수행하게 됩니다. 게다가 == 비교를 하는 편이 코드도 간단해지고 직관적이기 때문에 == 을 사용하는 것을 권장합니다.

728x90