装箱是值类型转成object引用类型,拆箱是已被装箱的引用类型转成原来的值类型。
装箱和取消装箱使值类型能够被视为对象。
对值类型装箱将把该值类型打包到 Object 引用类型的一个实例中。
这使得值类型可以存储于【垃圾回收】堆中。
取消装箱将从对象中提取值类型。
装箱是值类型到object类型或到此值类型所实现的任何接口类型的隐式转换。
对值类型装箱会在堆中分配一个对象实例,并将该值复制到新的对象中。
取消装箱是从 object 类型到值类型或从接口类型到实现该接口的值类型的显式转换。
取消装箱操作包括:
检查对象实例,确保它是给定值类型的一个装箱值。
将该值从实例复制到值类型变量中。
要在运行时成功取消装箱值类型,
被取消装箱的项必须是对一个对象的引用,
该对象是先前通过装箱该值类型的实例创建的。
尝试对 null 或对不兼容值类型的引用进行取消装箱操作,将导致 InvalidCastException。
装箱和拆箱是为了编程模式的简单,任何对象都应当可以赋给Object,
对于引用类型赋给Object没问题,都是引用类型,只是一个引用的赋值,
但是值类型赋给Object就有问题了,因为值类型没有引用,
为了造出一个引用,也就有了装箱。
装箱拆箱
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 8yue21 面向对象 面向过程思想,强调的是完成某一件事情需要哪些步骤的先后顺序,侧重于实现功能步骤 面向对象思...
- 本篇目的: c/c++中如何判断大小端的函数 c/c++中通过指针法,移位法获取多字节数据类型中的各个字节 jav...
- 目前,国内关于区块链的讨论正进行得如火如荼。从官方层面看,《人民日报》曾用整个版面刊登关于区块链的报道;杭州将发展...