
autoboxing은 자바 컴파일러에 의해서 원시타입과 해당하는 wrapper 클래스 간에 자동으로 형변환되는 것을 말한다.
autoboxing은 오류를 방지하기 위해 컴파일러 시점에 컴파일러가 자동 형변환 해주므로 편리하지만, 남용하게 될 경우에 불필요한 로직을 수행하게 될 수도 있다.
예를 들면, 반복문 내에 Integer 로 선언된 변수에 int 값이 반복되어 더해지는 로직이 있다면, 이는 내부적으로 int에서 Integer로 autoboxing을 수행하게 된다. Integer는 참조 타입이므로, heap 메모리 내 공간할당이 필요하게 된다. 따라서, Integer로 autoboxing 될 때마다 메모리 할당이 함께 수행된다.
이처럼 int와 같은 기본타입으로 선언 시 발생하지 않을 불필요한 로직이 수행될 수 있다.
따라서, autoboxing 과정에서 발생하는 비용을 줄이기 위해서는 최대한 동일한 타입으로 변수를 선언하는 것이 좋다고 생각한다.