본문 바로가기

두두의 IT/Spring

int, Integer 차이

728x90

+ 변수(variable) : 값을 저장할 수 있는 메모리 상의 공간

+ 자료형

  • data의 type에 따라 값이 저장될 공간의 크기와 저장 형식을 정의한 것
  • 변수의 타입 = data type = 자료형
  1. 기본형(primitive type)
    • 산술 연산 가능
    • null 로 초기화 불가능
    • 0으로 초기화 가능
    • 기본형에는 다음과 같은 종류가 있습니다.
Wrapper Class 자료형 데이터 메모리 크기 표현 가능 범위
Boolean boolean 참/거짓 1 byte true, false
Character char 문자 2 byte 모든 유니코드 문자
Byte byte 정수 1 byte -128~127
Short short 정수 2 byte -32768~32767
Integer int 정수 4 byte -2147483648~2147483647
Long long 정수 8 byte -9223372036854775808~9223372036854775807
Float float 실수 4 byte 1.4E-45~3.4028235E38
Double double 실수 8 byte 4.9E-324~1.7976931348623157E308
Void void      

 

2. 참조형(referece type)

  • class 
  • interface

 

+ Wrapper Class

  • 기본형을 객체로 표현하기 위해 사용하는 클래스
    • 매개변수로 객체를 필요로 할 때 (제네릭 타입을 파라미터로 받을 때)
    • 기본형 값이 아닌 객체로 저장해야할 때 (메소드에 전달된 파라미터를 수정하려는 경우)
    • 객체 간 비교가 필요할 때
    • 웹 서버의 경우 클라이언트에서 null 값이 왔을 때 기본 타입이면 예외가 발생하기 때문에
  • Unboxing을 하지 않으면 직접적인 산술 연산이 불가능
  • null값 처리가 용이해서 SQL 과 연동할 경우 처리가 용이
  • java.lang 패키지에 포함
  • 인스턴스에 저장된 값을 변경할 수 없다. 단지 값을 참조하기 위해 새로운 인스턴스를 생성하고, 생성된 인스턴스의 값만을 참조할 수 있다.
  • 래퍼 클래스인 Interger 클래스와 Character 클래스에는 각각 언박싱을 위한 valueOf와 intValue 메서드가 있다.
  • wrapper 클래스의 인스턴스, 즉 포장 객체는 내부의 값을 비교하기 위해 ==와 !=를 사용할 수 없다. 동등 연산자(==)를 사용하게 되면, 두 인스턴스의 값을 비교하는 것이 아니라 두 인스턴스의 주소값을 비교하게 되는데, 포장 객체는 내부 값이 아니라 참조를 비교하기 때문이다.이럴 땐 == 말고 equals() 메소드를 사용하면 된다. 하지만 포장 객체에 어떤 값이 들어갈지 확실하지 않는 상황이라면 동등연산자는 사용하지 않는 편이 좋겠다.

 

+ Boxing과 Unboxing

  • boxing
    • primitive type -> wrapper class 변환
    • int to Integer
    • Integer a = new Integer(10);
  • unboxing
    • wrapper class -> primitive type 변환
    • Integer to int
    • int b = a.intValue();
  • JDK 1.5부터는 AutoBoxing, AutoUnBoxing을 자바 컴파일러가 자동으로 처리해줌

 

int vs Integer 차이점 정리

int Integer
primitive type Wrapper Class
산술 연산 가능 Unboxing 하지 않으면 산술 연산 불가능
null로 초기화 불가 null 값 처리 가능

 

 

'두두의 IT > Spring' 카테고리의 다른 글

static / final / 상수  (0) 2023.04.18
Builder와 Getter/Setter  (0) 2023.04.18
DAO, DTO, VO 차이  (0) 2023.04.17
JUnit5  (0) 2022.11.10
조회 빈이 2개 이상일 때  (0) 2022.10.31