본문 바로가기
Programming/JAVA

[JAVA] Integer와 Int의 차이 (Wrapper Class란)

by 안녕주 2023. 9. 5.

프로그래머스 Lv.1 같은 숫자는 싫어 문제를 풀다가 ArrayList관련된 것을 더 알았는데, 해당 리스트를 선언할때 Integer로 선언하길래 Integer와 Int의 차이가 무엇인지 궁금해서 알아보게 되었습니다.

 

Integer

  • Wrapper 클래스(한 객체를 의미) 이다.
  • (Unboxing을 하지 않으면) 산술 연산이 불가능 하지만, null 값을 처리할 수 있다.
  • null 값 처리가 용이하기 때문에 SQL과 연동할 경우에 처리를 원할하게 할 수 있다.
  • DB에서 자료형이 정수형이지만 null 값이 필요한 경우 VO에서 Integer를 사용할 수 있다.

Int

  1.  primitive 자료형이다. (long, float, double 등)
  2. 산술 연산이 가능하다.
  3.  null값 처리 불가능

 

Wrapper 클래스란?

JAVA는 자료형으로 기본 타입(primitive type - char, int 등)과 참조 타입(reference type - class, interface)으로 나뉘는데 프로그래밍을 하다 보면 기본 타입의 데이터를 객체로 표현해야 하는 경우가 종종 있습니다. 이럴 때에 기본 타입(primitive type)을 객체로 다루기 위해서 사용하는 클래스들을 래퍼 클래스(wrapper class)라고 한다.

기본 타입 (primitive type) 래퍼 클래스 (wrapper class)
byte Byte
char Character
int Integer
float Float
double Double
boolean Boolean
long Long
short Short

 

Int와 Interger의 변환

Int는 산술이 가능하지만 Integer는 산술이 불가능하기 때문에 변환 과정이 필요!

 

기본타입(primitive type)        ---    (Boxing)   --->     래퍼클래스(wrapper class) 

래퍼클래스(wrapper class)   ---  (Unboxing) --->     기본타입(primitive type)

 

// 1. Integer n2를 int n1으로 변환 -> Unboxing
int n1 = n2.intValue();

// 2. int n1를 Integer n2으로 변환 -> Boxing
Integer n2 = new Integer(n1);

 

Auto boxing / unboxing

자바에서는 모든 경우는 아니지만, 대부분의 경우에는 자동으로 boxing / unboxing을 해준다.

int n1 = 1;
Integer integer = n1; // int     -> Integer (Auto boxing)
int n2 = integer;     // Integer -> int     (Auto unboxing)

 

 

 

참고

Java 데이터 타입 Integer와 int의 차이 (tistory.com)

[Java] 래퍼 클래스(Wrapper Class)란 무엇인가? (박싱, 언박싱) (tistory.com)

댓글