[Java] What is NullPointException?

2024. 9. 24. 20:00·Java
 

Null이란?

흔히 코딩을 하다 보면 Null이란 값이 존재(?)하는데(존재한다는 표현이 맞지는 않을 수 있으나, 편의상 사용) 이 Null 이란 뭘까?

 

쉽게 카카오톡 선물하기를 떠올리면 된다.

친구에게 선물을 하면 구매는 되었지만 배송지가 아직 입력되지 않아 특정기간(자동환불 되는 기간)동안은 주소지를 비워두는 것을 말한다.

이 때 이 비워두는 것을 Null이라고 한다.

 

기본적으로 기본형(int , double, long, boolean)의 경우 자동으로 "0"과 "false"로 값이 초기화가 되지만, 참조형의 경우

(ex : int[] students) 데이터에 접근하기 위한 주소를 저장하는 데이터 타입이기 때문에 주소지를 지정하지 않는다면 임의로 Null을 넣어두게 되며 이 때 NullPointException이 쉽게 발생한다.


NullPointException이란?

그럼 어떤 과정을 통해 NullPointException이 발생할까?

위에서 Null에 대해 얘기하면서 우리는 참조형(Object)변수를 지정하지 않을 경우 null이 들어가게 되는 것을 알게됐다.

다음과 같이 BigData라는 클래스가 존재한다고 했을 때 count의 경우 기본형이기 때문에 count = 0으로, 참조형인 data는 null로 초기화가 된다.

 

이후 다른 클래스에서 다음과 같이 호출을 할 경우

주석에서 설명된 것과 같이 count에 대해 호출을 할 경우 

다음과 같이 초기화 된 값인 0이 출력되게 되고, 그 다음 줄인 data를 출력하는 코드에선

다음과 같이 초기화 된 상태인 Null이 들어가게 된다.

그런데 그 다음줄을 보게 되면 bigData.data.value라는 주소지의 데이터 값을 호출하게 되는데.

3번째 줄의 코드의 결과 값을 통해 "bigData.data = null"이란 것을 알 수 있고, 이렇게 되면 주소는 bigData.null.value로 인식하게 된다.

이 때 주소지가 존재하지 않으므로 NullPointException이 발생하게 된다.

NullPointException 발생

 


 

 

마무리

김영한 강사님의 강의를 들을 때 마다 너무나도 새롭고, 현재는 스택과 큐에 대해서 배우면서 같이 학원 다녔던 사람들과 토이프로젝트를 진행하는데, 이럴 때 마다 신경쓸게 너무나도 많고(학원에선 도대체가 뭘 배운지 모르겠음. 학원은 무조건 잘 알아보고 가는게 답.)그걸 하나하나 생각하며 하기엔 블로깅이 답인 것 같다..


'Java' 카테고리의 다른 글

[Java] reverse()  (1) 2024.11.13
[Java] Thread Join  (2) 2024.11.12
[Java] Record  (4) 2024.11.11
[Java] Linear Search AND Binary Search  (2) 2024.09.03
[Java] "float" vs "double" in precision  (4) 2024.08.31
'Java' 카테고리의 다른 글
  • [Java] Thread Join
  • [Java] Record
  • [Java] Linear Search AND Binary Search
  • [Java] "float" vs "double" in precision
dev-heesxxung
dev-heesxxung
  • dev-heesxxung
    발악하는 비전공자 여우
    dev-heesxxung
  • 전체
    오늘
    어제
    • 분류 전체보기 (16)
      • Java (7)
      • Spring (1)
      • 밑시딥 (1)
      • Thesis (5)
      • AI (1)
      • Sparta[심화 2기] (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    실시간 객체인식(real-time object recognition)
    인식속도(recognition speed)
    컴퓨터비전
    특징점 추출(feature detection)
    어텐션기법
    Computer Vision
    Spring
    의료 영상 분석
    master student
    영상처리(image processing)
    Thread
    java
    CS
    템플릿 매칭(template matching)
    conjunctivitis
    Coding
    관심 영역 기반
    programming
    NullPointException
    ai
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
dev-heesxxung
[Java] What is NullPointException?
상단으로

티스토리툴바