null과 NullPointException

Do_It·2024년 3월 22일

null

참조형 변수에는 메모리 상에 객체가 있는 위치를 가리키는 참조값이 들어간다. 그런데 아직 가키리키는 대상이 없거나,가리키는 대상을 나중에 입력하고 싶다면 어떻게 해야할까?

참조형 변수에는 아직 가리키는 대상이 없다면 null이라는 특별한 값을 넣어둘 수 있다.

null은 값이 존재하지 않는,없다는 뜻이다.
그래서 null은 참조형에서만 쓸 수 있다. 기본형에서는 쓸 수 없다.
왜냐하면 nll이라는 것 의미 자체가 참조할 대상의 주소가 없다는 것을 의미하는 것이기 때문이다.

객체가 존재하지 않을 경우에만 null 이라는 것을 쓸 수 있는 것이다.

참조되지 않는 객체는 후에 gc가 수거해간다.

과거 c와 같은 언어에서는 개발자가 직접 명령어를 사용해서 인스턴스를 메모리에서 제거해야 했다. 만약 실수로 인스턴스 삭제를 누락하면 메모리에 사용하지 않는 객체가 가득해져서 메모리 부족 오류가 발생해 프로그램이 다운되기도 했다.

지역변수 같이 메소드 호출 시 필요했으나 메소드가 종료 후에 필요가 없다면 gc가 해당 변수를 제거한다.

NullPointException

  • 개발시 가장 많이 만나는 에러이다.
  • 참조값 없이 객체를 찾아가는 경우에 발생하는 예외이다.

객체를 참조할 때 .을 사용한다. 이렇게 하면 참조값을 사용해서 해당 객체를 찾아갈 수 있다. 그런데 참조값이 null이라면 값이 없다는 뜻으로, 찾아갈 수 있는 객체가 없다.NullPointException은 이처럼 null에 .(dot)을 찍었을 때 발생한다.

  • 참조형은 초기값에 nul이다.

-> NullPointException이 발생하면 null 값에 .(dot)을 찍었다고 생각하면 문제를 쉽게 찾을 수 있다!

profile
오늘의 노력이 내일의 성장으로 이어지고 있음을

0개의 댓글