.NET是什么?

.NET是开发“托管”软件的平台。

传统环境和.NET环境区别:

传统环境——先将源代码编译为包含机器代码的可执行文件,然后由操作系统加载和执行可执行文件。

.NET环境——编译器首先产生中间语言IL,然后运行时又Just In Time再编译成二进制代码。

传统编译环境和.net托管环境最大的区别就是源文件被编译了两次,第一次将机器语言编译为程序集(中间语言IL+元数据),第二次加载程序集变为二进制文件。

CLR那点事儿

前面我们提到了一个词CLR,它是一个非常重要的家伙,没了它一切免谈,接下来我们谈谈这个东东吧!

CLR提供了许多功能丰富的基础服务,并且所有语言都可以使用这些服务,当然咯所有语言是.net支持的,举几个例子吧:

.NET支持的编程语言:C++、C#、Delphi、F#、J#、VB.NET、Perl、Jscript等等,大约有30几种额。

1.阐述下下CLR的特性,好枯燥额,基础知识木有办法,Coutinue......!!!

--------拿个图解释吧,特别喜欢图,特简单--------

以上这些特性都有不同的作用,太多了,感觉百科讲得比我详细,充分发挥网络的强大吧!

2.CLR执行过程

>>>绝大多数情况下JIT编译器仅仅在代码第一次执行前被编译,编译后的二进制代码CLR会将其保存在工作集中。下次代码必须执行时,CLR首先去检查工作集,如果工作集中保存有对应的二进制代码则直接调用,如果没有就将其编译。这样做最大的好处就是大大提高效率。但是我们的内存有限,工作集会周期性的回收编译后的二进制,防止服务器负载过重。

>>>JIT编译器在方法级别上操作,其本质上与其他语言里的函数或过程相同。因此,CLR开始执行时,JIT编译器会先编译入口点Main,随后每个方法仅仅在执行前被编译。

后记

基础很重要,真心发现,各位大神有错尽管拍砖。

------如果你觉得本文对你有帮助别忘了点击右下角的推荐哦------

最新文章

  1. DDD~领域事件中使用分布式事务
  2. Linux CentOS 6.6安装JDK1.7
  3. State Management
  4. Jquery VailDate初探
  5. ASP.NET网站发布-允许更新此预编译站点 打勾与不打勾的区别
  6. java设计模式--行为型模式--状态模式
  7. Android KitKat 4.4 Wifi移植AP模式和网络共享的调试日志
  8. hdu 1878 无向图的欧拉回路
  9. Struts2【配置】知识要点
  10. Codeforces Round #539 (Div. 2) - D. Sasha and One More Name(思维)
  11. workbench使用小笔记(不定期持续更新)
  12. CentOS7.2 1511部署RabbitMQ
  13. regex-ways
  14. [PY3]——内置数据结构(1)——列表及其常用操作
  15. [New learn]GCD其他方法的使用
  16. JS练习--自动生成100个li
  17. canvas基本绘制图形
  18. ubuntu: lightdm 登录root超级管理员方法
  19. 高通平台Bootloader启动流程【转】
  20. GDOI2018 爆零记,Challenge Impossibility

热门文章

  1. Android打包失败Proguard returned with error code 1. See console
  2. 支持状态对象复用的RPC框架——SnakeRPC
  3. [转]深入理解jQuery插件开发
  4. 转:Unity3D的四种坐标系
  5. Google 常用镜像收集
  6. mac安装软件运行提示「xxx.app已损坏,打不开.你应该将它移到废纸篓」的解决办法
  7. QT/C++ 智能指针
  8. 常用 VS 快捷键积累
  9. 关于JSON对象,以及联合数组,eval函数的使用参考
  10. 带你初识Angular中MVC模型