본문 바로가기

개발 지식/Java

Java 데이터 타입 Integer와 int의 차이

반응형

1. Primitve 자료형 - Wrapper 클래스 관계

  • int : primitive 자료형임(long, float, double 등등...)

    • 산술 연산이 가능하다.
    • null로 초기화 할 수 없다.
  • Integer : Wrapper 클래스임 => 한 객체를 의미

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

2. int와 Integer간의 변환

Boxing과 Unboxing이라고 한다.

  • Boxing : Primitive 자료형 => Wrapper 클래스
  • Unboxing : Wrapper 클래스 => Primitive 자료형

예제코드

//Integer i를 int i로 == Unboxing
int i = ii.intValue();
//int형 i를 Integer i로 == Boxing
Integer ii = new Integer(i);

valueOf()와 parseInt()의 차이

  • Integer.valueOf(String) : Integer 클래스를 리턴하기 때문에 산술 연산을 할 수 없다.
  • Integer.parseInt(String) : int형을 리턴하기 때문에 산술 연산을 할 수 있다.

3. Auto boxing / unboxing

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

예제코드

int i = 1;
Integer integer = i; //int -> Integer(Auto boxing)
int i2 = integer; //Integer -> int(Auto unboxing)

Reference : Wrapper 클래스란?

java는 데이터로서 클래스와 객체 외에 기초(primitive) 타입을 가진다. 그렇기 때문에 기본형 타입(primitive 자료형)과 객체 참조(클래스) 같은 두 가지 타입의 관리 데이터를 가진다. 경우에 따라서 기본형 타입을 객체로 사용하는 경우가 있으며, 이러한 경우 기본형 타입 값을 객체로 표현해야 한다.

이 때, Wrapper 클래스를 사용하는데 특정 기본형 타입으로 나타낸다. 예를 들어 Integer 클래스는 간단한 정수 값을 나타내며 객체는 하나의 int값을 저장할 수 있다.

반응형

'개발 지식 > Java' 카테고리의 다른 글

[JAVA] JDBC란  (1) 2020.02.05
[JAVA] Servlet(서블릿) 이란  (0) 2020.01.27
Mybatis Mapper 인터페이스  (0) 2020.01.20
[Java] UnsatisfiedLinkError  (0) 2019.12.16
[Java] Robot 클래스 정리  (0) 2019.12.10