2015년 9월 14일 월요일

박싱과 언박싱

참조 : http://www.mkexdev.net/Article/Content.aspx?parentCategoryID=1&categoryID=5&ID=671

박싱 : 값 형식을 참조 형식으로 변화하는 것
언박싱 : 참조 형식을 값 형식으로 변환하는 것

박싱
1. 스택의 데이터가 힙으로 복사
예)
int = 123;
object o = i; //박싱(묵시적 변환)
언박싱
1. 힙에 있는 데이터가 스택으로 복사
예)
int i = 123;  // 형식
object o = i;  //박싱
int j = (int) o; //언박싱(명시적 변환)
>> 박싱/언박싱은 비용이 꽤나 많이 드는 작업
값 형식을 박싱 하는 경우 완전히 새로운 객체를 할당하고 구성해야 하며 언박싱에 필요한 캐스팅도
상당한 계산 과정이 필요합니다

boxing  unboxing 과정에는 많은 처리 작업이 필요합니다값 형식을 boxing할 때는 완전히 새로운 개체가
만들어져야 하며이러한 작업에는 할당 작업보다 최대 20배의 시간이 걸립니다. unboxing을 할 때는 캐스팅
과정에 할당 작업보다 4배의 시간이 걸릴 수 있습니다

편리하기는 하지만 그 만큼의 비용은 지불해야 하는 것입니다



댓글 없음:

댓글 쓰기