1. int vs Integer
int (primitive type, 원시형 타입)
int는 변수의 타입(data type, 자료형)이다.
자료형은 ‘data의 type에 따라 값이 저장될 공간의 크기와 저장형식을 정의한 것’ 이다.
자료형은 기본형(primitive type)가 참조형(referece type)으로 나뉨
Integer (wrapper class, 래퍼 클래스)
- 매개변수로 객체를 필요로 할 때
- 기본형 값이 아닌 객체로 저장해야할 때
- 객체 간 비교가 필요할 때
위와 같은 경우, 기본형을 객체 다루기 위해 사용하는 클래스들을 래퍼 클래스라고 함.
Integer은 int의 래퍼 클래스 라고 할 수 있음.
int vs Integer
int : 자료형(primitive type) | 산술 연산 가능 |
null로 초기화 불가능 | |
Integer : 래퍼 클래스(Wrapper class) | Unboxing 하지 않을 시 산술 연산 불가능 |
null 값 처리 가능 → SQL과 연동할 경우 처리가 용이 | |
DB에서 자료형이 정수형이지만, null값이 필요한 경우, VO에서 Integer을 사용할 수 있음. |
2. int와 Integer 간의 변환
Boxing과 Unboxing
Boxing | primitive type → wrapper class 변환 (int to Integer) |
Unboxing | wrapper type → primitive type 변환 (Integer to int) |
// to int i from Integer ii
int i = ii.intValue();
//to Integer ii from int i
Integer ii = new Integer(i);
valueOf()와 parseInt()의 차이
Integer.valueOf(String) | Integer 클래스를 리턴하기 떄문에 산술 연산 불가능 |
Integer.parseInt(String) | int 형을 리턴하기 때문에 산술 연산 가능 |
*정수로 파싱할 수 없는 String을 파라미터로 전달하면 에러
Auto boxing/ unboxing
자바에서 모든 경우는 아니지만 대부분의 경우 자동으로 boxing/unboxing을 해줌
int i = 1;
Integer integer = i; // int to Integer (Auto boxing)
int i2 = integer; // Integer to int (Auto unboxing)
참고
'JAVA' 카테고리의 다른 글
[Java] 문자열 비교 ==, equals() 차이점 (0) | 2022.09.03 |
---|---|
[Java] 스택(Stack)과 큐(Queue) Java로 구현하기 (0) | 2022.02.27 |
[JAVA] static(정적) 변수와 메소드 (1) | 2022.01.13 |