说说我自己的理解:
java反射在一定程度上会影响性能的,打个比分:就像你要进一小区,如果你正常在门卫处等级了,如果你想懒着不出来肯定不行呀,因为有登记记录,如果你翻墙进去了,你懒着不走,他们也不知道呀,等他们慢慢检查才可以。而new与反射就有点两者的关系。所有使用反射可以调用私有的东东。呵呵,这是我的理解,不一定正确哦:- 1.基本上效果差不多,但是new对象,无法调用该类里面私有的东西,反射反之,具体怎么做请参考java AIP,不过反射需要以牺牲性能做代价。
- 2.在不知道类名的情况下,你怎么去new?我相信很多人看到这句话都迷糊了(新手),肯定有这样的疑问,不知道类名,你怎么反射啊?
- 那么接下来在讲讲new和反射本质上的区别,new属于静态编译,而反射属于动态编译,意思就说只有到运行时他才会去获得该对象的实例,可能讲的有些抽象(也有可能讲的不太正确)
- 举例:spring框架是事先就写好的框架,他内部的处理并不知道用户要写哪些类,应为那是以后由用他的人来定的,这时候你还能在spring内部去new吗?所以用户在用的时候才去配置文件中配置类路径,这是一个典型反射的例子,在很多面试中就问道了这个问题。
复制代码 |