文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>装箱拆箱深度解析

装箱拆箱深度解析

时间:2011-05-30  来源:孤独的鱼-萧零

问题:

Customclass myclass=new Customclass();

Object obj=myclass;

以上代码会发生装箱操作吗?

装箱:将值类型转化为引用类型

.NET FRAMEWORK 平台的的构造 

万物之源:System.Object

在之下系统又分为:值类型(Value Type)和引用类型(Reference Type)

值了性:byte,short,int,float,double,bool,decimal,char,enum(枚举),struct(结构)

引用类型:类(class)、接口(interface)、委托(delegate)、数组(system.array)、string、object

 

解答:以上操作不做装箱操作。

装箱和拆箱系统都做了什么?

例子:

int i=10;

object o=(object) i;  

第一步:新分配堆内存

第二步:将值类型的实例字段拷贝到新分配的内存中

第三步:返回堆中新分配对象的地址。这个地址就是一个指向对象的引用了。

拆箱:

带来的影响:

一个就是对于堆的操作效率比较低。

另一个对于堆上分配的内存资源,需要GC来回收,从而降低程序效率。

显然, 装箱生成的是全新的引用对象,会有时间损耗,也就是造成效率降低。

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载