什么是装箱与拆箱?为什么要装箱与拆箱?装箱与拆箱的本质是什么?

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 14:53:27
什么是装箱与拆箱?为什么要装箱与拆箱?装箱与拆箱的本质是什么?
xTRP~ /E3ŽL^*ES 2p,˜=I ݓ wo;{6\aʆ/wk@4~bbl߭ڣFYY~3JmSj= Yoȵ͍=YU"DŠ7eKKR3yk!ű3}0K8 A=K#n{VtΏN$Z71!6P:d)$\ hQ F:6j*" t <_?V#S9?HTd]A޲ظ#E~v^k'fW&栥T.!`Kn(02nrhz-;&=F"bqUx.dQ45d}cW8Vy55L\y]̊܂azqJd4e?M>98}1Ǎ*|!8)߰TtD+ EfJV<'CP#_5ߩKSDXvL 蘃 p<9U|e^bֶ>[{}c3Xxjvw\S\Q&}>Ozx逋G)/)?7  I2*X sPn׎(P*g`_Hna0L>-ŗwkMNmA

什么是装箱与拆箱?为什么要装箱与拆箱?装箱与拆箱的本质是什么?
什么是装箱与拆箱?为什么要装箱与拆箱?装箱与拆箱的本质是什么?

什么是装箱与拆箱?为什么要装箱与拆箱?装箱与拆箱的本质是什么?
装箱是值类型转成object引用类型,拆箱是已被装箱的引用类型转成原来的值类型.
装箱和取消装箱使值类型能够被视为对象.
对值类型装箱将把该值类型打包到 Object 引用类型的一个实例中.
这使得值类型可以存储于垃圾回收堆中.
取消装箱将从对象中提取值类型.
装箱是值类型到object类型或到此值类型所实现的任何接口类型的隐式转换.
对值类型装箱会在堆中分配一个对象实例,并将该值复制到新的对象中.
取消装箱是从 object 类型到值类型或从接口类型到实现该接口的值类型的显式转换.
取消装箱操作包括:
检查对象实例,确保它是给定值类型的一个装箱值.
将该值从实例复制到值类型变量中.
要在运行时成功取消装箱值类型,
被取消装箱的项必须是对一个对象的引用,
该对象是先前通过装箱该值类型的实例创建的.
尝试对 null 或对不兼容值类型的引用进行取消装箱操作,将导致 InvalidCastException.
装箱和拆箱是为了编程模式的简单,任何对象都应当可以赋给Object,
对于引用类型赋给Object没问题,都是引用类型,只是一个引用的赋值,
但是值类型赋给Object就有问题了,因为值类型没有引用,
为了造出一个引用,也就有了装箱.