.Net基础

#.Net基础

源代码运行流程:

  • 1.编写源代码
  • 2.编译成中间语言—MSIL(每次Build的代码会存储在一个程序集中,程序集分为两种:可执行程序.EXE或者其他可执行的类库.DLL。一般个人写的代码都会在所建工程的根目录中,而.NetFramework所提供的的可重用的全局程序缓存基础类库存在:Win+R,输入assembly
  • 3.执行
    1. CLR(加载公共语言运行时)
    2. 读取MSIL
    3. JIT成机器码(也就是1,0这种东西,再次声明JIT是边执行,边编译的这可以大大提高代码运行效率)
    4. CPU执行机器码

##托管语言
.Net Framework是很负责的,本身提供了一种托管机制,程序员在编写程序时,所写的程序相当于交给了它托管。一旦发现基础错误时,会及时报错提醒,大大的提高了程序的健壮性。例如常遇到的数组越界问题都会在运行之前暴露出来。

##垃圾回收机制
同学们都或多或少的知道,垃圾回收是不定时的随机时间进行垃圾回收。今天就给科普一下细节知识:
.Net Framework会自动创建三层垃圾回收帯:
第一层 G0层:使用时间比较短,内存比较小的放在这(回收释放资源频率,极其频繁)
第二层 G1层:在G0层里释放完资源之后,发现使用时间比较长,且内存比较大的就放在这
第三层 G2层:同理,在回收G1时,还是有一些极其频繁且内存大的就放在G2层
注意:除非已经确认必须要手动进行垃圾回收,一般不要主动调用方法GC.Collect(); 进行回收 !!!原因是因为.NET有自己的垃圾回收机制,一但你手动回收,.Net再检查垃圾的容量时发现很少,内部的机制就会因此减少检查垃圾的频率。当系统垃圾比较多时而你手动的位置并没有被触发,就会卡顿,而且每次手动回收都会给CPU带来负担。

未完待续哦~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值