《C#从现象到本质》读书笔记(一)第1章 .NET基础知识
最近根据博客园大神的推荐,买了本《C#从现象到本质》。做一点读书笔记。
由于不懂IL和ildasm,winddg,太深奥,理解不了,就牛嚼草一样,先总结第一遍读书,自己总结的知识点了。不知道这样会不会侵权,如果侵权了,请告诉我,我撤销这些。
第一部分“基础知识”
第1章 .NET基础知识
CLR:公共语言运行时
CTS:公共语言系统
CLS:公共语言规范
FCL:框架类库
BCL:基础类库
CLI:公共语言基础设施
DLR:动态语言运行时
TPL:任务并行库
JIT:即时编译
COM:组件对象模型
GAC:全局程序集缓存
.NET框架其最主要的两个组成部分是公共语言运行时(CLR)和框架类库(FCL),基础类库(BCL)是框架类库的一个子集。运行于底层的是公共语言运行时CLR,它是公共语言基础设施(CLI)的一个实现。CLR最主要的两个组成部分是CTS(公共语言系统)和CLS(公共语言规范)。
.NET框架的主要结构

编程语言转化成机器码,转化的过程分为两种主要的形式,即编译和解释。
IL语言是一个基于栈的、面向对象的高级语言。
托管代码是必须在CLR下执行的代码,而非托管代码则不需要CLR的支持就可以运行。
FCL就是我们用到的所有外部参考,而BCL是其中不需要手动引用的那部分。
不同的程序集可以共享一个命名空间。
程序集是一个可以寄宿于CLR中的、拥有版本号的、自解释、可配置的二进制文件,程序集的扩展名为exe或dll。
CLR是和程序集一起工作的。
单模块程序集的结构就是它的托管模块加上清单和资源文件。在任何时候,IL代码和元数据都是存在于托管模块中的。
程序需要资源时才会加载对应的程序集。
IL中的关键字可以分为三类:指令、特性和操作码。
程序集的IL和元数据支撑着.NET的运作。IL为各种框架语言建立了一个共同的编译目标,也为接下来的JIT编译做准备。JIT是最终翻译为机器码的编译器,它会做更多的优化,并通过使用不同的编译方式来利用这些优化。
《C#从现象到本质》读书笔记(一)第1章 .NET基础知识的更多相关文章
- SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章)
SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章) 示例数据库:点我 CHAPTER 08 数据修改 8.1 插入数据 8.1.1 INSERT VALUES 语句 8.1 ...
- 《Android开发艺术探索》读书笔记 (13) 第13章 综合技术、第14章 JNI和NDK编程、第15章 Android性能优化
第13章 综合技术 13.1 使用CrashHandler来获取应用的Crash信息 (1)应用发生Crash在所难免,但是如何采集crash信息以供后续开发处理这类问题呢?利用Thread类的set ...
- 《Android开发艺术探索》读书笔记 (3) 第3章 View的事件体系
本节和<Android群英传>中的第五章Scroll分析有关系,建议先阅读该章的总结 第3章 View的事件体系 3.1 View基本知识 (1)view的层次结构:ViewGroup也是 ...
- 《Linux内核设计与实现》读书笔记——第一、 二章
<Linux内核设计与实现>读书笔记--第一. 二章 标签(空格分隔): 20135321余佳源 第一章 Linux内核简介 1.Unix内核特点 十分简洁:仅提供几百个系统调用并且有明确 ...
- 《Android开发艺术探索》读书笔记 (9) 第9章 四大组件的工作过程
第9章 四大组件的工作过程 9.1 四大组件的运行状态 (1)四大组件中只有BroadcastReceiver既可以在AndroidManifest文件中注册,也可以在代码中注册,其他三个组件都必须在 ...
- C++学习笔记(一):C++基础知识
一.C++基础知识 新的数据类型 C语言中的数据类型 C++中新的数据类型 思考:新的数据类型有什么好处?请看下面的代码: 可以见得:新的类型使整个程序更加简洁,程序变得易读易懂!这个就是bool类型 ...
- Java笔记(十四) 并发基础知识
并发基础知识 一.线程的基本概念 线程表示一条单独的执行流,它有自己的程序计数器,有自己的栈. 1.创建线程 1)继承Thread Java中java.lang.Thread这个类表示线程,一个类可以 ...
- 学习笔记 第十五章 JavaScript基础
第15章 JavaScript基础 [学习重点] 了解JavaScript基础知识 熟悉常量和变量 能够使用表达式和运算符 正确使用语句 能够掌握数据类型和转换的基本方法 正确使用函数.对象.数组 ...
- 小范笔记:ASP.NET Core API 基础知识与Axios前端提交数据
跟同事合作前后端分离项目,自己对 WebApi 的很多知识不够全,虽说不必要学全栈,可是也要了解基础知识,才能合理设计接口.API,方便与前端交接. 晚上回到宿舍后,对 WebApi 的知识查漏补缺, ...
随机推荐
- BOM 表
';--查看BOM创建日期时间 SELECT * FROM SAPSR3.ZSTPO_OUT2011_1@SAP_SEP; SELECT * FROM SAPSR3.ZSTPO_OUT2012_1@S ...
- Struts2学习资料
Struts2入门示例教程 http://blog.csdn.net/wwwgeyang777/article/details/19078545 Struts2工作原理 http://blog ...
- serv-U使用
该软件是设置ftp服务器的 可以百度查询ftp服务器安装攻略,如 https://jingyan.baidu.com/article/cb5d6105c00bba005c2fe0ca.html 问题: ...
- Android 各个版本新特性
一.Android 4.x 新锁屏界面: Android4.0重新设计了锁屏幕UI,下方的解锁虚拟按键向周围发射出微光,轻轻拖动就可以解锁,比原来在UI上确实有很大的进步. 全新Widget排列: 主 ...
- Gradle 实战(1)—— 配置环境变量
背景:Gradle 是一款构建工具,继 Ant .Maven 之后的现代构建工具,我会在接下来的博文中陆续介绍,我在工作中是如何使用 Gradle 的. 下载 Gradle 下面是 Gradle 的官 ...
- iOS 组件化流程详解(git创建流程)
[链接]组件化流程详解(一)https://www.jianshu.com/p/2deca619ff7e
- [leetcode]103. Binary Tree Zigzag Level Order Traversal二叉树来回遍历
Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to ...
- Android Studio无法打印Logout日志
华为手机: 在拨号界面输入:*#*#2846579#*#* 进入测试菜单界面,然后Project Menu → 后台设置 → LOG设置LOG 开关 → LOG 打开 LOG 级别设置 ...
- asp相关知识整理
WWW----World Wide Web(万维网) URL----Uniform Resource Locator(统一资源定位符) HTTP----Hyper Text Transfer Prot ...
- 关于MYSQL字符集问题(一)
MySQL的字符集支持(Character Set Support)有两个方面: 字符集(Character set)和排序方式(Collation). 对于字符集的支持细化到四个层次: 服务器(se ...