Java | int와 Integer의 차이

박예선·2023년 4월 14일
0

Java

목록 보기
5/6
post-thumbnail

강의를 듣다가 강사님께서 숫자 자료형을 다루실 때 어떤 곳에서는 int,
어떤 곳에서는 Integer를 사용하시는 것을 보고 왜 그렇게 사용하실까? 싶었다.
따로 그에 대한 언급없이 자연스럽게 사용하셔서 궁금했음!

// 메모했던 내용
// 왜 변수 data는 int, 변수 beforeData는 Integer?!?!?!?
    public void addData(int data, Integer beforeData) {
        if (this.head == null) {
            this.head = new NodeBi(data, null, null);
            this.tail = this.head;
        }
    }

혹시 잘못된 부분이 있다면 댓글 부탁드립니다 피드백 환영🙌


int란?

int란 정수형 변수의 타입이다.(= data type = 자료형)
+) 변수: 값을 저장하는 메모리 공간

int number = 0;
int count = 0;
int maxValue = Integer.MAX_VALUE;
...

자료형은 기본형(primitive type)과 참조형(referece type)으로 나뉘는데, int는 기본형에 속한다.

  • 기본형: int, long, short, byte, float, double, boolean, char
  • 참조형: String, Array 등 기본형을 제외한 타입들

Integer란?

Integer란 int 자료형을 객체로 다루기 위한 클래스이다.(Wrapper 클래스)

  • 어떤 경우에 사용하나?
    - 매개변수로 객체를 필요로 할 때
    - 기본형 값이 아닌 객체로 저장해야할 때
    - 객체 간 비교가 필요할 때
    - 등등
  • Integer 클래스의 목적은 단일 int 값을 추적하는 것이므로 Integer 클래스는 내부적으로 단일 int 값을 유지한다.


+) 모든 기본형 타입 자료형은 Wrapper클래스를 생성할 수 있다.
double - Double
float - Float
long - Long
int - Integer
short - Short
byte - Byte
char - Character
boolean - Boolean

그 둘의 차이는?

int는 Java의 8가지 기본 유형 중 하나인 반면 Integer 래퍼 클래스는 Java API에 포함된 수백 가지 구성 요소 중 하나이다.

  • 정수값만을 참조할 경우 int가 효율적이다.
  • 정수값을 객체로 사용해야 하거나 메서드 및 속성의 사용이 필요한 경우 Integer 클래스를 사용한다.
intInteger
산술연산 가능unboxing 하지 않으면 산술연산 불가
null로 초기화 불가null로 초기화 가능
==으로 비교.equals로 비교
메서드 사용 불가메서드 사용 가능

int와 Integer가 둘 다 정수값을 표현하는 것인 걸 대략 알고, 언제 써야 하는지도 대략 알고있었지만 자세하게 둘의 차이를 알 기회가 없었는데
명확하게 차이를 알게되어서 속이 후련하다!!!

사소한 부분이겠지만 알고 쓰는 것과 모르고 쓰는 것은 다른 것 같다.


Reference
TheServerSide
@hadoyaji님 블로그

profile
개발 좋아 lynn08082@gmail.com

0개의 댓글