如何简洁精准的回答面试官的这种问题?
可以从这几个方面来回答:定义,功能,大致用法,优点以及缺点,应用场景;
1.(从定义的角度)反射就是在程序运行期间动态获取对象的属性和方法的功能叫做反射。
2.(从功能的角度)在程序运行期间,对任意一个类(除了枚举)能够直到他的方法和属性,对于任意一个对象,都能直到他的方法和属性。
3.(从用法的角度)获取class对象的三种方式:getClass(); xx. class; Class.forName("xx");
4.(从优点及缺点的角度回答)优点:运行期间能够动态的获取类,提高代码的灵活性;缺点:性能上相比较直接通过类或对象获取方法和属性,要慢的多
5.(从应用场景的角度回答)例如模拟 Spring框架、模拟Spring 加载 XML 配置文件、JDBC操作进行数据库连接。