读经典——《CLR via C#》(Jeffrey Richter著) 笔记_引用类型和值类型(一)

1. CLR 支持两种类型:引用类型 值类型

2. FCL 中大多数的类型是 引用类型,但程序中使用最多的是 值类型

引用类型

  • 内存必须从托管堆上分配。
  • 堆上分配的每个对象都有一个额外的成员,这些成员必须初始化。
  • 对象上的其他字节(为字段而设)总是设为零。
  • 从托管堆上分配一个对象时,可能强制执行一次垃圾收集操作。

值类型

  • 值类型的实例一般在线程栈上分配。
  • 值类型的实例的一个变量中,不包含一个指向实例的指针。变量本身包含了字段。
  • 值类型的实例不受垃圾回收器的控制,缓解了托管堆中的压力,减少了应用程序在生存期中的垃圾回收次数。
  • 值类型是密封(sealed)的,目的是防止将一个值类型用作其他任何引用类型或值类型的基类型。
原文地址:https://www.cnblogs.com/lishidefengchen/p/4479243.html