[Java] int vs Integer

Wooyong Jung·2023년 9월 7일
0

Java

목록 보기
2/4
post-thumbnail
post-custom-banner

Java에서 자주 사용하는 intInteger. 아무생각 없이 맨날 사용했던 것이 int와 Intger이었는데 문득 둘의 차이가 궁금해졌고 알아보기로 했다.


➡️ int는 primitive type이다.

데이터의 종류에 따라 값이 저장될 공간의 크기와 저장형식을 정의한 것이 자료형(data type) 이다.

자료형(data type) 은 크게 기본형(primitive type)참조형(refernce type) 으로 나눌 수 있는데 기본형 변수는 실제 data를 저장하는 반면 참조형 변수는 data의 주소를 값으로 갖는다. 기본형에는 모두 8개의 자료형이 있으며 논리형, 문자형, 정수형, 실수형으로 구분된다.

분류타입
논리형boolean
문자형char
정수형byte, short, int, long
실수형float, double

➡️ Integer는 wrapper class 이다.

기본형 타입은 객체로 다루지 않기 때문에 보다 높은 성능을 얻을 수 있다. 그렇지만 기본형 변수를 객체로 다뤄야 하는 경우가 있다. 이 때 사용되는 것이 래퍼 클래스(wrapper class) 이다. 8개의 기본형 타입을 대표하는 8개의 래퍼 클래스가 있다.

기본형래퍼클래스
booleanBoolean
charCharacter
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble

➡️ int와 Integer의 차이

int

  • 산술 연산 가능
  • null로 초기화 불가능
  • 저장공간이 4Byte라 작음

Integer

  • Unboxing(Integer to int 타입 변환) 하지 않으면 산술 연산이 불가능
  • null 값 처리 가능
  • 저장공간이 큼
  • null값으로 처리가 가능해 SQL에 용이하게 쓰인다.


➡️ Spring에서 int와 Integer

Spring에서 엔티티를 정의할 때 Integer를 주로 썼었는데 이는 null 값 처리가 가능한 래퍼 클래스의 특징 때문이었다. 엔티티 정의 뿐만 아니라 파라미터로 null 값을 받을 수 있는 경우에는 Integer를 사용해서 개발하면 될 것 같다.

profile
실패를 두려워하지 않는 백엔드 개발자가 되기 위해 노력하고 있습니다.
post-custom-banner

0개의 댓글