강의를 듣다가 강사님께서 숫자 자료형을 다루실 때 어떤 곳에서는 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란 정수형 변수의 타입이다.(= 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란 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 클래스
를 사용한다.int | Integer |
---|---|
산술연산 가능 | unboxing 하지 않으면 산술연산 불가 |
null로 초기화 불가 | null로 초기화 가능 |
==으로 비교 | .equals로 비교 |
메서드 사용 불가 | 메서드 사용 가능 |
int와 Integer가 둘 다 정수값을 표현하는 것인 걸 대략 알고, 언제 써야 하는지도 대략 알고있었지만 자세하게 둘의 차이를 알 기회가 없었는데
명확하게 차이를 알게되어서 속이 후련하다!!!
사소한 부분이겠지만 알고 쓰는 것과 모르고 쓰는 것은 다른 것 같다.
Reference
TheServerSide
@hadoyaji님 블로그