《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 的知识查漏补缺, ...
随机推荐
- chromedriver和chrome匹配的版本
- Cacti日志时区问题
cacti默认是以美国的时间为准的,监测的适合要纠正到UTC+8的时区. 打开vi /home/cacti/include/config.php 文件,在里面加入一行 date_default_tim ...
- python全栈 字典数据类型相关知识及操作
python 全栈开发 一.字典 1. 字典的概念: 字典 : dict 用 {} 来表示, 键位值数据. { key , value } 具有唯一性. 键:都必须是可哈希的 不可变 ...
- MySQL 按指定字段自定义列表排序
问题描述 大家都知道, mysql 中按某字段升序排列的 SQL 为 (以 id 为例, 下同): SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ...
- 如何向 Windows 7 镜像中添加 USB3.0 驱动
如何向 Windows 7 镜像中添加 USB3.0 驱动 1. Microsoft 在 Windows 7 的安装光盘并没有集成各个厂商的 USB3.0 驱动,可 以使用下面方法添加 USB3.0 ...
- JS在严格模式和非严格模式的区别
若想在严格模式下使用JS,需要在文件的第一行加上“use strict”,在实际开发中,常常将“use strict”加入到闭包的内部 具体是: 整个脚本中使用:在这个JavaScript文件开头写' ...
- NumPy Ndarray 对象
NumPy Ndarray 对象 NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引. ndarray 对象是用于存放 ...
- Codeforces Round #520 (Div. 2)
Codeforces Round #520 (Div. 2) https://codeforces.com/contest/1062 A #include<bits/stdc++.h> u ...
- Java-分治算法
一.分治算法的原理 分治算法就是将一个规模为N的问题分解成K个规模较小的子问题,这些子问题相互独立且与原问题性质相同,求出子问题的解,就可以得出原问题的解 二.分治算法的伪代码实现 合并算法Merge ...
- 惠普/aruba交换机
1.开启CDP cdp run show cdp neighbors可看到各端口上.下联的AP或交换机 2.配置telnet管理 1)配置IP地址 vlan 77 name "VLAN77 ...