목차

    개요

    프로젝트 진행 중 null 값에 비교연산자를 사용하여 null인 경우와 아닌 경우를 구분해서 작업을 진행해야하는 순간이 있었습니다. 아무 생각 없이 null 값은 객체가 값을 참조하지 않은 경우니까 객체의 값을 비교하는 .equals()를 써야겠지라고 생각했다가 문제가 생겨 부끄러운 순간이지만 내용을 공유해보려고합니다.

     

    ==을 사용해야하는 이유

    null은 힙 영역의 객체를 참조하지 않는다는 뜻으로 존재하는 특수한 상태 타입입니다.

    null로 초기화된 참조 변수는 스택영역에 생성되죠.

     

    그렇기 때문에 .equals()가 아닌 ==을 사용해야합니다.

     

    결론

    그런데 생각해보니 null을 처리하기 위한 Optional이라는 좋은 선택지가 있었는데 왜 생각하지 못했는지...