002公共语言运行时

    公共语言运行时CLR是用于.NET应用程序的执行引擎,它也是.NET最重要的特征之一。公共语言运行时通过公共类型系统(Common Type System、CTS)和公共语言规范(Common Language Specification. CLS)定义了标准数据类型和语言间互操作性的规则.Just-In-Time编辑器在运行应用程序之前把中间语言(Intermediate Language.几)代码转换为可执行代码。CLR还负责管理应用程序,为其分配内存和回收内存。

公共类型系统

    公共类型系统不仅定义了所有的数据类型,而且提供了面向对象的模型,以及各种语言需要遵守的标准。CTS可以分为两个大类:值类型和引用类型。同时这两种类型,之间还可以进行强制转换,这种转换被称为Boxing(装箱)和UnBoxing(拆箱)。

    值类型是继承自Valuelype类的,值类型的变量直接存储数据,实例是被分配存储在栈中的,并且永远不能为空。两个整型变量是分别存储数据的,一个变量发生变化不会影响到另一个变量。

    引用类型是继承自Object的,引用类型变量存储的是数据在内存中的地址,而实例是被分配在可以进行垃圾回收的堆中的。一份数据可以被多个变量引用,使用这种变量类型能够起到节省内存资源的作用,同时一个引用变量被修改会导致其他引用发生变更。引用类型的变最是可以为空的,这表示它不指向任何对象。

   

    如果将值类型数据指定给引用类型数据,系统会先从堆中分配一块内存,然后将值类型数据复制到该内存中,最后再使引用类型数据指向这一内存,该过程称为Boxing(装箱),将引用类型转换为值类型的过程称为UnBoxing(拆箱)。
 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值