본문 바로가기

항해 시절

int, Integer 차이는 무엇인가

728x90
728x90

int, Integer 차이는 무엇인가

int 는 변수의 타입(data type) 이다. 여기서 변수는 값을 저장할 수 있는 메모리 상의 공간이다.

int a = 3; 에서 a는 변수명이다. int는 변수의 타입( data type = 자료형) 이다

(즉 자료형은 data의 type에 따라 값이 저장될 공간의 크기와 저장 형식을 정의한 것)

자료형에는 기본형(primitive type)과 참조형(reference type)으로 나뉜다.

위 그림은 기본형 자료이다.

Integer은 int를 객체로 다루기 위해 사용하는 클래스로 래퍼클래스(wrapper class)라고 부른다.

차이점 정리

int : 자료형(primitive type)

- 산술 연산 가능함

- null로 초기화 불가

Integer : 래퍼클래스(Wrapper class)

-Unboxing 하지 않을 시 산술 연산 불가능

-null값 처리 가능

boxing : primitive type -> wrapper class 변환 (int to Integer)

unboxing: wrapper class -> primitive type 변환 ( Integer to int)

자바에서는 int to Integer을 할때 valueof() 또는 Integer() 생성자와 같은 메서드를 제공함

int a = 10;

Integer i = new Integer(a); // Integer 생성자를 사용하여 Int를 정수로 변환

int a = 10;

Integer i = a; // Autoboxing (오토박싱은 기본 유형이 암시적으로 객체로 변환되는 기술, 추가 코드 작성 필요 x)

int a = 10;

Integer i = Integer.valueOf(a); // Intger 클래스의 valueOf() 메소드를 사용하여 Int 원시 인수를 취하고 Integer 객테를 리턴함

변환이 잘 되었는지는 Object 클래스의 getClass() 메소드를 사용하여 확인 할 수 있다.

int a = 10;

Integer i = Integer.valueOf(a);

System.out.println(i.getClass());

System.out.println(i.getClass().getSimpleName());

출력 시

class java.lang. Integer

Integer