.Net 对象生命周期由浅入深1

在聊.Net 对象生命周期之前首先说说内存:

内存是对象赖以生存的介质,内存是由大量的晶体管组成的,每个晶体管代表一个位(bit),一个位只有两个值:0或1;一般内存大小最小单位是一个字节,单位是比特(Byte),一个Byte是由8个位组成的:1 Byte=8 bit;那一个字节的大小最小值是8个0(二进制),最大值是8个1(二进制),对应十进制大小是0到255

如下图16*8的矩阵模拟可以想象成一个内存条,每一个方格代表一个晶体管;总共有128个晶体管即128个位,每8个位一个字节就是16个字节,大小就是16Byte;

那一个8G的内存条有多少个晶体管:

8GB=8*1024 MB=8*1024*1024 KB=8*1024*1024*1024B=8*1024*1024*1024*8 bit

算下来大概有687亿个晶体管组成

0000000011111111
                
0100000111101000
                
                
                
                
                

接下来我们说说对象:

客观世界是由各种对象组成的,任何事物都是对象,每一个对象都有自己的运动规律和内部状态,复杂的对象可由简单的各种对象以各种方式构成,对象的组合及相互作用就构成了系统,在计算机系统中一个对象可由三部分组成:对象名、属性和方法。

通常情况下计算机高级语言用类去表示对象,一个类的实例表示一个对象:

创建一个Person类

public class Person{


}

创建一个Person类实例即一个对象

Person person=new Person()

当运行程序执行以上这一段代码时 ,就产生了一个person对象,刚开始就提到内存是对象赖以生存的介质,对象从生成到消亡都是由CLR(Common Language Runtime)来管理的,CLR会计算出对象的所需要的内存大小,并且分配一定的内存区域给这个对象,这个对象何时消亡,CLR有自己的垃圾回收机制(GC)来处理,当这个对象消亡后,CLR就会收回它的内存

再看看第一张图第三排理解成一个2个字节大小(8个比特位)的对象在存活时内存中的样子:

0100000111101000

在接下来的章节里会详细说说.Net 对象产生的详细过程,对象的内存大小是如何计算的,以及CLR是如何管理对象的内存的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

会飞的黑鸭

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

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

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

打赏作者

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

抵扣说明:

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

余额充值