Open HanaHww2 opened 1 year ago
기본 타입과 박싱된 기본 타입의 차이점과 성능적인 이슈를 다룹니다.
.
기본 타입
값을 담는 자료형
int, double, boolean
각각의 크기와 표현 범위가 정해짐
박싱된 기본 타입
해당 기본 타입을 래핑한 참조 타입
Integer, Double, Boolean
기본 타입은 값만을 담고 있으므로 메모리 사용량과 계산 속도가 박싱된 기본 타입에 비해 효율적이다.
따라서, 성능이 중요한 상황에서는 기본 타입을 사용하는 것이 좋다.
주된 차이 3가지
주의해서 사용하지 않으면 문제 발생할 수 있음
차이2를 신경쓰지 않았을 때
public class Unbelievable { static Integer i; public static void main(String[] args) { if (i == 42) System.out.println("믿을 수 없군!"); } }
i == 42 를 할 때, null 참조를 언박싱하게 되면서 NPE가 터진다.
i의 타입을 Integer에서 int로 바꿔야 한다
차이3을 신경쓰지 않았을 때
public static void main(String[] args) { Long sum = 0L; for (long i = 0; i <= Integer.MAX_VALUE; i++) { sum += i; } System.out.println(sum); }
박싱과 언박싱이 반복해서 일어나기 때문에 체감될 정도로 성능이 느려진다. ( sum = sum + i )
박싱된 기본 타입은 기본 타입을 참조 타입으로 사용할 수 있게 해주고, 제네릭 타입의 타입 파라미터로 사용할 수 있게 해줍니다. 또한, null 값을 표현할 수 있어 유용합니다.
따라서, 기본 타입과 박싱된 기본 타입 중 어떤 것을 사용할지는 상황에 따라 다릅니다.
기본 타입과 박싱 타입에 대해 오랜만에 정리할 수 있었네요
성능이 중요할 땐 기본 타입을 써야겠네요
익숙한 타입만 사용해왔는데 이제 상황에 맞게 타입을 선택할 수 있게 됐어요
61. 박싱된 기본 타입보다는 기본 타입을 사용하라
기본 타입과 박싱된 기본 타입의 차이점과 성능적인 이슈를 다룹니다.
.
기본 타입
값을 담는 자료형
int, double, boolean
각각의 크기와 표현 범위가 정해짐
박싱된 기본 타입
해당 기본 타입을 래핑한 참조 타입
Integer, Double, Boolean
.
기본 타입은 값만을 담고 있으므로 메모리 사용량과 계산 속도가 박싱된 기본 타입에 비해 효율적이다.
따라서, 성능이 중요한 상황에서는 기본 타입을 사용하는 것이 좋다.
.
주된 차이 3가지
주의해서 사용하지 않으면 문제 발생할 수 있음
.
차이2를 신경쓰지 않았을 때
i == 42 를 할 때, null 참조를 언박싱하게 되면서 NPE가 터진다.
i의 타입을 Integer에서 int로 바꿔야 한다
.
차이3을 신경쓰지 않았을 때
박싱과 언박싱이 반복해서 일어나기 때문에 체감될 정도로 성능이 느려진다. ( sum = sum + i )
.
박싱된 기본 타입은 기본 타입을 참조 타입으로 사용할 수 있게 해주고, 제네릭 타입의 타입 파라미터로 사용할 수 있게 해줍니다. 또한, null 값을 표현할 수 있어 유용합니다.
따라서, 기본 타입과 박싱된 기본 타입 중 어떤 것을 사용할지는 상황에 따라 다릅니다.
.