자바 java Integer int 차이 비교
- IT
- 2021. 4. 1. 19:57
많은 글을 보았지만
바로 와닿는 자료라 공유합니다
1. Primitive 자료형 - Wrapper 클래스 관계
int
primitive 자료형 (long, float, double ...)
산술 연산이 가능하다.
null로 초기화 할 수 없다.
Integer
Wrapper 클래스 (객체)
Unboxing을 하지 않으면 산술 연산이 불가능 하지만, null 값을 처리할 수 있다.
null 값 처리가 용이하기 때문에 SQL과 연동할 경우 처리가 용이하다.
DB에서 자료형이 정수형이지만 null 값이 필요한 경우 VO에서 Integer를 사용할 수 있음.
2. int와 Integer간의 변환
- Boxing과 Unboxing이라고 한다.
Boxing
Primitive 자료형 -> Wrapper 클래스
Unboxing
Wrapper 클래스 -> Primitive 자료형
- 예제 코드
// 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을 파라미터로 전달하면 에러
3. Auto boxing / unboxing
- 자바에서는 모든 경우는 아니지만 대부분의 경우에는 자동으로 boxing / unboxing을 해준다.
- 예제 코드
int i = 1;
Integer integer = i; // int -> Integer (Auto boxing)
int i2 = integer; // Integer -> int (Auto unboxing)
4. int와 Integer의 사이즈를 비교하는 재미있는 실험
- 환경
JRE
jdk 1.5.0_15
OS
Windows XP
- 조건
Integer 및 int 배열을 1,000,000개 생성
- 결과
Integer
19986824 byte
int
3998536 byte
Rate(Integer/int)
4.99 (약 5배)
- 요약
- Object가 8 byte
- Integer가 16 byte
- Integer를 참조하는데 4 byte
- Integer의 사이즈 = 16 + 4 = 20 byte
- int의 사이즈 = 4 byte
-> 5배 차이
※ 참고 및 출처 : http://mindprod.com/jgloss/intvsinteger.html, http://blog.naver.com/nearfree/110038071441
출처 - https://includestdio.tistory.com/1
'IT' 카테고리의 다른 글
eclipse 이클립스 Ant 는 무엇일까? (0) | 2021.04.01 |
---|---|
Java HashMap은 어떻게 동작하는가? (0) | 2021.03.28 |
서버리스 컴퓨팅 제작 운영시 주의할 점 (0) | 2020.11.01 |
개발자가 할 수 있는 투잡의 종류는 무엇이 있을까? (0) | 2018.12.06 |
JSON 구조 (0) | 2018.12.05 |
이 글을 공유하기