int 에는 null 값이 들어갈 수 없는데 Integer 에는 null 값이 들어갈 수 있는 이유는 뭔가요?

조회수 22321회

wrapper 클래스를 공부하다 궁금점이 생겨서 질문합니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • int 는 원시유형의 변수고 Integer 레퍼런스는 객체이기 때문입니다. 알 수 없는 사용자 2019.7.31 14:07

2 답변

  • int형 변수는 기본형(Primitive type) 변수입니다. 그러기 때문에 실제 값을 저장 장소를 가지만 Integer형 변수는 객체형 변수로서 참조형(Reference Type)입니다, 즉 실제 값이 아닌 객체의 주소를 저장하고 있죠 그렇기에 Null을 가질 수 있는 것입니다.

    int vs Integer 차이는 무엇일까?

    1. int (Primitive 자료형 (long, float, double,. ....)

      • 자료형
      • 산술 연산이 가능.
      • null 로 초기화 불가능, 0으로 초기화
    2. Integer (Wrapper 클래스(객체)

      • 클래스
      • Unboxing 을 하지 않으면 산술 연산이 불가능하지만, null값은 처리할 수 있음.
      • null값 처리가 용이해서 SQL 과 연동할 경우 처리가 용이. 직접적인 산술연산은 불가능
  • 실제 값을 저장하느냐, 실제 값을 가르키는 주소값을 저장하느냐의 차이입니다.

    아래 이미지를 보시면 이해가 쉬울 것 같은데요. 같은 객체이기 때문에 Employee 를 Integer 라봐도 상관 없습니다.

    • 기본형 타입 (primitive type) 이미지

    • 참조형 타입 (reference type)

    이미지

    이미지의 출처입니다. 제일 위에 달린 답변에서 이미지를 가져왔습니다.

    답변이 훌륭합니다만 영어입니다 :D

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)