자바
Auto Boxing/UnBoxing
dev_dean
2022. 12. 9. 11:33
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가 측정되었다. 불필요한 성능 저하가 발생하지 않도록 주의가 필요하다.