本帖最后由 冉世友 于 2013-1-5 22:32 编辑
讲到反射可以创建实例,new也可以创建实例,有什么区别?
带着好奇在网上搜了下,和大家分享一下:
反射和new的本质区别:
new属于静态编译,而反射属于动态编译,只有到运行时他才会去获得该对象的实例。
静态编译就是在编译的时候把你所有的模块都编译进exe里去,当你启动这个exe的时候所有模块都加载进来了。你写小程序没问题,但程序一大,加载的过程就费劲了。
动态编译就不一样了,你编译的时候那些模块都没有编译进去,一般情况下你可以把那些模块都编译成dll,这样你启动程序(初始化)的时候这些模块不会被加载,而是在运行的时候,用到那个模块就调用哪个模块。
|
|