자바에는 기본 자료형(Primitive data type)이 있는데 그에 대한 클래스 표현인 Wrapper Class가 존재한다.
기본 타입 : int, long, float, double, boolean ...
래퍼 클래스 : Integer, Long, Float, Double, Boolean ...
박싱과 언박싱
박싱 : 기본 데이터 타입에 대응하는 wrapper클래스로 만드는 동작
int i = 10; Integer num = new Integer(i); // Boxing
언박싱 : Wrapper 클래스에서 기본 타입으로 변환
Integer num = new Integer(10); int i = num.intValue(); //unBoxing
오토 박싱
편의성을 위해 오토 박싱과 오토 언박싱이 제공된다. (JDK 1.5 이상)
int i = 10;
Integer num = i; // Auto Boxing
Integer num = new Integer(10);
int i = num; // Auto unBoxing
하지만 이러한 오토 캐스팅은 100만건 기준 약 5배의 성능차이가 나므로 불필요한 오토 캐스팅이 일어나는지 확인하는 습관을 가져야 한다.
ArrayList<Integer> lists = new ArrayList<>();
int i = 10;
lists.add(i);
Integer i = new Integer(10);
lists.add(i);
'Study > JAVA' 카테고리의 다른 글
[JAVA] Serialization (0) | 2022.06.16 |
---|---|
[JAVA] Call by Value & Call by Reference (2) | 2021.12.31 |