Boxing
원시 타입에서 Wrapper 클래스로 변환하는 작업
UnBoxing
Wrapper 클래스에서 원시 타입으로 변환하는 작업
예시
Auto Boxing
// Boxing
Integer a = new Integer(10);
// Auto Boxing
Integer b = 10;
Auto UnBoxing
Integer a = 10;
// UnBoxing
int b = a.intValue();
// Auto UnBoxing
int c = a;
성능
Auto Boxing/UnBoxing 기능으로 편의성은 제공되지만 내부 작업이 추가적으로 일어나기 때문에 연산 작업에 사용하는 것은 성능면에서 좋지 않다.
long t = System.currentTimeMillis();
Long sum = 0L;
for (long i = 0; i < 10000000; i++) {
sum += i;
}
System.out.println("실행 시간: " + (System.currentTimeMillis() - t) + " ms");
/*
실행 시간: 66 ms
*/
long t = System.currentTimeMillis();
long sum = 0L;
for (long i = 0; i < 10000000; i++) {
sum += i;
}
System.out.println("실행 시간: " + (System.currentTimeMillis() - t) + " ms");
/*
실행 시간: 4 ms
*/
1000만 번 반복 연산 기준 Wrapper Class 사용 시 66ms 원시 타입 사용 시 4ms가 측정되었다. 불필요한 성능 저하가 발생하지 않도록 주의가 필요하다.
'자바' 카테고리의 다른 글
[디자인 패턴] 싱글톤(Singleton) 패턴 (0) | 2024.03.15 |
---|---|
컬렉션 프레임워크(Collection Framework) (0) | 2022.12.09 |
Wrapper Class (0) | 2022.12.09 |
원시 타입과 참조 타입 (0) | 2022.12.09 |
추상 클래스(abstract class)와 인터페이스(interface) 의 차이점 (0) | 2022.11.30 |