-
오토 박싱, 언박싱 조심!Dev. Diary/Memo 2023. 9. 20. 04:38
간단하지만 최근에 알고리즘 문제를 풀면서 고려하지 않고 코드를 작성하던 것이 있어서 기억을 위해 짧게 적어보려고 한다.
// Effective Java 코드 6-3 private static long sum() { Long sum = 0L; for (long i = 0; i <= Integer.MAX_VALUE; i++) sum += i; return sum; }
위의 코드에서는
Long
인스턴스가 $2^{31}$개나 만들어진다. 반복문 안의sum += i
를 계산할 때, 변수sum
을long
타입으로 형변환한 뒤 변수i
와 더하고, 더해진 값을 다시Long
타입으로 형변환을 위해 새로운Long
인스턴스를 생성하는 것이다.사소할 수도 있는 부분이지만, 오토 박싱(auto-boxing)과 언박싱(unboxing)이 적절한 이유를 갖고 사용될 수 있도록 코드를 작성하는 습관을 들이자.
'Dev. Diary > Memo' 카테고리의 다른 글
Comparable 인터페이스를 구현할 때 비교자(Comparator) 이용하기 (0) 2023.09.27 requireNonNull() 메서드 관련 메모 (0) 2023.09.22 객체의 일관성에 관한 메모 (0) 2023.09.19 정적 팩토리 메서드를 알아보다가 느낀 점 (0) 2023.09.17 입력을 받았을 때, 직접 input stream에서 데이터를 읽어오기 (0) 2023.08.28