1_C# 高级编程(第六版)学习笔记——第1章 .Net 体系结构

原创 2014年09月16日 15:35:39

声明:

  • 本博客为原创博客,主要讲述学习C# 高级编程(第六版)中的学习笔记,转载请声明出处。
  • 如有技术问题或需交流可直接联系本人邮箱:chuiwenwei@163.com
目录:
  1. C#与.Net的关系
  2. 公共语言运行库(CLR)
  3. 中间语言(IL)
  4. 程序集
1.C#与.Net的关系
  • C#是专门为.NET Framework设计的语言
  • C#本身就是一门语言,不是.NET的一部分。但C#语言是和.NET一起使用
  • C#在设计时就吸取了C++和JAVA的经验,是一种基于现代面向对象设计方法的语言
2.公共语言运行库(CLR)
  • .NET Framework的核心是其运行库的执行环境,称为公共语言运行库或.NET运行库。
  • 通常将在CLR控制下运行的代码称为托管代码
  • CLR在执行编译好的代码前要进行两个阶段:1.将源代码编译为Microsoft 中间语言(IL),2.CLR把IL编译为平台专用的代码
  • Microsoft的中间语言与Java字节代码一样都是低级语言。语法是使用数字代码可以很快转化为内部机器码。其设计造就了其的优点:平台无关性、提高性能和语言的互操作性
  • .NET的平台无关性暂时还只能使用与Windows平台,不过人们已经在积极准备使其可以应用于其他平台
  • VB2008,VC++2008,COM和COM+可以转化为中间语言
  • 托管C++比C#更优越的一点是可以在托管C++代码中调用非托管C++类,而不必采用COM交互功能
  • .NET集成了COM的互操作性,从而使托管代码可以调用COM组件,COM组件也可以调用托管代码
3.中间语言(IL)
  • 中间语言是面向对象编程和对接口的支持
  • 中间语言与其他编程语言一样提供了许多预定义的基本数据类型。它的一个特性就是值类型和引用类型有明显区别。对于值类型,变量保存其数据,对于引用类型,变量保存地址,对应的数据可以在该地址中找到。
  • 中间语言对数据存储的规范:引用类型的实例存储在托管堆的内存区域中,值类型存储在堆栈中
  • 中间语言的一个重要方面是它是基于强数据类型,所有的变量都清晰的标记为属于某个特定的数据类型
  • 通用类型系统(CTS)定义了可以在中间语言中使用的预定义数据类型,所有面向.NET Frameword的语言都可以生成最终基于这些类型的编译代码,比如C#的int映射为CTS中的Int32
  • 公共语言规范(CLS)和通用类型系统一起确保语言的互操作性。
  • .NET运行库采用的方法是垃圾收集器,这是一个程序,其目的是清理内存,方法是所有动态请求的内存都分配到堆上,当.NET检测到给定进程的托管堆已满,需要清理时,就调用垃圾收集器。垃圾收集器处理目前代码中的所有变量,检查对存储在托管堆上的对象的引用,确定哪些对象可以从代码中访问。没有应用的对象就不能再从代码中访问,因而被删除。
  • 垃圾收集器的一个重要方面是它的不确定性,不能保证什么时候会调用垃圾收集器。
4.程序集
  • 每个程序在运行时,Windows通过地址空间把进程分离开来,这样每个进程就有4G的虚拟内存来存储其数据和可执行代码。Windows利用额外的间接方式把这些虚拟内存映射到物理内存或磁盘空间的一个特殊区域中。
  • 任何进程都只能通过虚拟内存汇总的一个地址来访问内存,不能直接访问物理内存

版权声明:本文为博主原创文章,未经博主允许不得转载。

C#高级编程(第6版) 目录

书找到了听说没目录,补上@0@看起来好难啊~~ C#高级编程(第六版) 目录 第Ⅰ部分  C# 语 言 第1章  .NET体系结构 2 1.1  C#与.NET的关系 2 1.2  公共语言运行库 3...
  • lulu_jiang
  • lulu_jiang
  • 2010年03月30日 09:29
  • 1420

《C#高级编程(第7版)》学习笔记

欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: -Markdown和扩展Markdown简洁的语法 - 代码块高...
  • onlytiger1100
  • onlytiger1100
  • 2017年03月10日 09:12
  • 277

【读书笔记:C++ primer plus 第六版 中文版】第2章:开始学习C++

转载请注明出处: 本章内容包括: 创建C++程序. C++程序的一般格式. #include编译指令. main()函数. 使用cout对象进行输出 在C++程序中加入注释. 何时以及如何使用endl...
  • enyusmile
  • enyusmile
  • 2015年06月21日 10:33
  • 820

Jenkins---------------------学习笔记汇总

翻译的PDF和Word文件下载链接:http://pan.baidu.com/s/1geZkuLP 密码: cg85 英文原版PDF文件:http://pan.baidu.com/s/1i4CLCy...
  • henni_719
  • henni_719
  • 2016年09月20日 18:33
  • 1022

Unity Shader入门精要 学习笔记一

Unity Shader入门精要 学习笔记一前几章预计都是理论知识。涉及代码的也应该是很小一部分,在我想来。先把理论搞搞清楚。再去理解shader会好很多。所以祝福诸君程运昌荣!好了。开始记录学习笔记...
  • qq_19518429
  • qq_19518429
  • 2017年05月18日 11:27
  • 158

C# 6 与 .NET Core 1.0 高级编程

译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 38 章 实体框架核心(下)),不对的地方欢迎指出与交流。   章节出自《Professional C# 6 ...
  • camiiqqo
  • camiiqqo
  • 2017年02月12日 19:19
  • 498

读《C#高级编程(第9版)》之我有话说

之前用过Visual Studio 2005和Visual Studio 2012做过项目,感觉Visual Studio这个IDE是非常强大的,当时C#还是4.0版本,如果4.5版本横空出世,让大家...
  • dotnetstudio
  • dotnetstudio
  • 2015年02月08日 22:16
  • 3127

《数据结构与算法分析C++》 维斯 第一章 笔记

指数,对数,级数,模运算,证明方法。 递归的简单介绍:递归并不是循环逻辑。因为他是从f(5)到f(4),一直下去,而非,从f(5)还在f(5). 所以,递归并不是循环。 当编写递归历程的时候,关...
  • weiliangdemo
  • weiliangdemo
  • 2015年07月01日 19:39
  • 846

C#高级编程第4版中文版下载(很清晰)

看到好多朋友都在找这个资源,本人下载到了。现在把链接公布出来方便大家。服务器有时会限制单线程所以速度不一定快哦。。直接将地址复制到迅雷里面就可以了。。。。 ftp://61.132.59.166/计算...
  • phcis
  • phcis
  • 2007年11月26日 20:05
  • 530

【C Primer Plus 第六版】笔记

1.  使用const 代替 #define 定义常量 原因:(1)const 声明显示指明了类型;(2)const可以很方便的用于复合类型,比如是数组等;(3)作用域规则,const可以创建为全局,...
  • wxm349810930
  • wxm349810930
  • 2016年09月15日 21:25
  • 943
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:1_C# 高级编程(第六版)学习笔记——第1章 .Net 体系结构
举报原因:
原因补充:

(最多只允许输入30个字)