CLR:通用语言运行时(Common Language Runtime)的简称,CLR是.NET框架的核心内容之一,可以把它看为一套标准资源,可以呗任何.NET程序使用.它包括:面向对象的编程模型.安全模型.类型系统(CTS).所有.NET基类.程序执行及代码管理等. 我们可以这样理解,CLR是托管程序运行的环境,就像Windows是普通的PE程序的运行环境一样.在Windows中,整个CLR系统的实现基本其实就是几个关键的DLL,比如mscorwks.dll.mscorjit.dll,它们共同…
参考网址: https://cloud.tencent.com/developer/article/1432891 1:什么是.NET? NET 是 Microsoft 的用以创建 XML Web 服务(下一代软件)平台,该平台将信息.设备和人以一种统一的.个性化的方式联系起来.借助于 .NET 平台,可以创建和使用基于 XML 的应用程序.进程和 Web 站点以及服务,它们之间可以按设计.在任何平台或智能设备上共享和组合信息与功能,以向单位和个人提供定制好的解决方案. .NET 是一个全面的产…
在使用IDE进行编译的时候,这个过程具体的叫法是,使用编译器面向CLR来生成代码.对于不同的开发语言,使用的的编译器也不一样,但是生成的代码都一样. “无论选用哪一个编译器,结果都是一个托管模块.” 托管模块中的中间语言(MSIL),是编译器编译代码时生成的代码,它是与CPU无关的机器语言.当程序运行时,由CLR将中间代码转换为本地CPU指令.因此,任何编译成MSIL的程序都可以在实现CLR的环境上执行.这是.NET Framework具有可移植性的部分原因. 为了执行一个IL方法,首先必须把它…
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:用Windbg来看看CLR的JIT是什么时候发生的.…
1. IL/MSIL  (Microsoft Intermediate Language) 微软中间语言 (IL是MSIL的缩写,译为中间语言) 2. CTS  (Common Type System)通用类型系统 3. CLS  (Common Language Specification)公共语言规范 4. CLR  (Common Language Runtime)公共语言运行时(也有的叫公共语言运行库) 5. JIT  (Just in time)即时编译器  …
1 转自:http://www.cnblogs.com/vento/archive/2013/02/09/2909579.html IDA Pro是一款强大的反汇编软件,特有的IDA视图和交叉引用,可以方便理解程序逻辑和快速定位代码片断,以方便修改. IDA视图 示例程序 下面会通过修改示例程序的输出字符串,来讲解如何使用IDA Pro. #include main() { int n; scanf ("%d",&n); if (n > 0) printf("a…
第七章 链接 链接是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(或拷贝)到存储器并执行.链接可以执行于编译时,也就是在源代码被翻译成机器代码时:也可以执行于加载时,也就是在程序被加载器加载到存储器并执行时:甚至执行于运行时,由应用程序来执行.在早期的计算机系统中,链接是手动执行的.在现代系统中,链接是由叫链接器的自动执行的. 理解链接器将帮助构造大型程序 理解链接器将帮助避免一些危险的编程错误 理解链接器将帮助语言的作用域规则是如何实现的 理解链接器将帮助其他重要…
前言: 啊啊啊,看书真的很痛苦啊,还是好想做项目写代码才有意思,不过我现在缺的确是将知识体系化,所以不论看书多么痛苦都一定要坚持坚持啊,这才是我现在最需要的进步的地方,加油! 因为现在期末啦,下周一也就是明天开始就有考试,所以复习是主要的事情,看书的速度比较慢了,一周大概也就184页(P110-P284), 虽然页数比较少但是其中有ES中非常最重要的两个概念——原型链和闭包,之前对于两个知识的了解算是知其然不知其所以然的,所以在那两章我也有意多花费了时间,确保我能够吃透这个概念.以下算是我自己的…
Java内存区域 程序计数器 (Program Counter Register) 是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器.在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支.循环.异常处理.线程恢复等基础功能都需要依赖这个计数器来完成. 在任何一个确定的时刻,一个处理器(对于多核处理器来说是一个内核)都只会执行一个线程中的指令.因此每个线程都需要有一个独立的程序计数器.此类内存为"线程私有"的内存. 如…
一.为什么要学习Java虚拟机?       这里我们使用举例来说明为什么要学习Java虚拟机,其实这个问题就和为什么要学习数据结构和算法是一个道理,工欲善其事,必先利其器.曾经的我经常害怕处理内存溢出的问题,因为不知道他为什么会出现这个问题,当我在看了这本书以后明白了垃圾回收算法,以及JVM是如何帮助我们处理GC的,这个时候当出现这个问题的时候我就明白需要查找GC Root,或者查看GC日志,去查找这个问题的根源,这样就能处理这些问题.还有以前的在理解重载和重构的时候只是在表面去理解,当我看完…