java基础之反射
反射:允许任意一个类在运行时获取自身的类信息,并且可以操作这个类的方法和属性。这种动态获取类信息和动态调用对象方法的功能称为java的反射机制。
反射的核心:JVM在运行时才动态加载类或调用方法/访问属性。它不需要事先知道运行对象,反射避免的将程序“写死”
反射的好处:反射可以降低程序的耦合性,提高程序的灵活性。new是造成紧耦合的一大原因。
例如:Class.forName()并未指定某个特定的类,完善由传入的类权限定名决定,而遇过new的方式是在知道运行的对象时哪个类的情况下操作的。
以下都用到了反射:
1)加载数据库驱动时
2)Spring的IOC容器,根据XML配置文件中的类权限定名动态加载类
3)工厂方法模式中