1、它计算类及其所有基类(一直到System.Object,虽然它没有定义自己的实例字段)中定义的所有实例字段需要的字节数。堆上的每个对象都需要一些额外的成员——即“类型指针”和“同步块索引”,这些额外成用于CLR管理对象,这些额外成员的字节数会计入对象大小。
2、从托管堆中分配指定类要求的字节数,从而分配对象的内存,分配的所有字节都设为零。
3、初始化对象的“类型对象指针”和“同步块索引”成员。
4、调用类的实例构造器,向其传入在对new的调用中指定的任何实参。大多数编译器都在构造器中自动生成代码来调用一个基类构造器。每个类构造器在调用时,都要负责初始化由这个类定义的实例字段。最终调用的是System.Object的构造器,该构造器只是简单地返回,不会做任何事情。
5、new执行了所有这引起操作之后,会返回指向新建对象一个引用(或指针)。