反射:
我们把这种动态获取对象信息和调用对象方法的功能称之为反射机制。
所谓反射其实是获取类的字节码文件,也就是.class文件,那么我们就可以通过Class这个对象获取类的构造方法、方法以及属性。
应用场景:
逆向代码 ,例如反编译
与注解相结合的框架 例如Retrofit
单纯的反射机制应用框架 例如EventBus 2.x
动态生成类框架 例如Gson
Spring和Hibernate中使用
优缺点:
优点:运行期类型的判断,动态类加载,动态代理使用反射。
缺点:性能是一个问题,反射相当于一系列解释操作,通知jvm要做的事情,性能比直接的java代码要慢很多。