.NET运行时与公共语言基础结构深度解析
1. 运行时基础特性
运行时在程序执行过程中起着至关重要的作用,下面介绍其几个关键特性。
- 垃圾回收机制 :.NET垃圾回收器采用标记 - 清除算法。每次执行垃圾回收时,它会标记要释放的对象,并将剩余对象紧凑排列,消除它们之间的“脏”空间。这种压缩方式填充释放对象留下的空间,通常能使新对象的实例化速度更快(相较于非托管代码),因为无需在内存中搜索新分配的空间。同时,由于更多对象位于同一页面,减少了分页的可能性,从而提高了性能。垃圾回收器会考虑机器上的资源以及执行时对这些资源的需求。例如,如果计算机内存仍有大量未使用,垃圾回收器运行清理资源的可能性就较小。
- 类型安全 :运行时提供的关键优势之一是类型检查,即检查类型之间的转换。通过类型检查,运行时可防止程序员无意中引入可能导致缓冲区溢出漏洞的无效强制类型转换。缓冲区溢出漏洞是入侵计算机系统最常见的手段之一,运行时自动防止这些漏洞是一个显著的优势。类型检查确保以下几点:
- 变量及其引用的数据都有类型,且变量类型与它引用的数据兼容。
- 可以局部分析一个类型(无需分析使用该类型的所有代码),以确定执行该类型成员所需的权限。
- 每个类型都有编译时定义的一组方法和包含的数据。运行时会强制执行关于哪些类可以访问这些方法和数据的规则。例如,标记为“private”的方法只能由包含该方法的类型访问。
2. 运行时的高级特性
- 绕过封装和访问修饰符 :在获得适当权限的情况下,可以通过反射机制绕过封装和访问修饰符。反射通过
超级会员免费看
订阅专栏 解锁全文
595

被折叠的 条评论
为什么被折叠?



