본문 바로가기
IT_Developers/JAVA

JAVA - null 과 ""(빈값)의 차이는 무엇일까? / 메모리상의 차이

by 고코더 2020. 3. 17.


자바에서 공백 값과 널(Null) 값의 차이는?


안녕하세요.
고코더 입니다.

자바에서 null 값과 ""(빈 공백)은 어떻게 다른지 알아보려고 합니다. 얼핏보면 비슷해보이지만 완전히 다른 개념을 가지고 있습니다.


 1. null


널(null)은 어떠한 값으로도 초기화 되지 않은 것입니다. 이렇게 초기화된 데이터는 내가 사용할 예정이다 정도로 컴파일러는 생각합니다. 그래서 참조형이지만 힙메모리상에 데이터를 만들어 내지 않습니다.

1
String a = null;  
cs




 2. ""(공백)


공백 값은 사실 하나의 스트링입니다. 예를 들면 "gocoder"로 변수를 선언한거처럼 빈 값을 메모리에 할당한 행동입니다.  

1
String b = "";
cs




 3. 차이점 다시 정리


null은 사용하겠다고 예고만 해놓은 상태라면
""은 이미 사용한 것입니다. 


마무리


실무에서는 공백으로 변수를 선언하지만 사실은 null로 해야 하는게 맞습니다. 


댓글