我今天接受采访时被问到这个问题。我的反应应该是什么?
我的回答是“呃……嗯……我不知道……我认为这将是运行时”。
我知道 CLR 提供了很多横切服务(GC、CAS 等),但我对此不太确定。
我认为,当一个对象被实例化时,这是由 JIT 完成的。我发现这篇关于伟大对象实例的文章,希望对您有所帮助:http: //msdn.microsoft.com/en-us/magazine/cc163791.aspx
嗯……这是一个奇怪的问题。我会这样回答——
当 JIT 编译器遇到用于分配新对象 ( newobj ) 的 MSIL 指令时,它会编译适当的本机指令,告诉运行时为托管堆上的对象分配空间。然后它调用对象的构造函数来初始化数据。