There are two different types in .net Framework.
ValueTypes
such as int, double, single
ReferenceTypes
ArrayList
List
and many, many more
Variables of type ValueTypes are stored in Stack
ReferenceTyped variables are stored in heap
Variables of type ValueTypes store the VALUE
ReferenceTyped variables store the REFERENCE to a value
so if you copy a ValueType variable - there is a real copy of a value
but if you copy a ReferenceType variable - you will get an additional reference to the SAME variable.
Boxing in your question means, that a valueType Variable (e.g. int) will be handled liked a reference Type Variable - .net gives it into a new box. So it will be encapsulated within the heap and there will be reference(s) to it.
In case you want the value to be again in a valueType Variable you have to unbox it (take it out of the box). So the value will be taken out of the heap - and stored/given to the stack once again.