1、什么是反射机制?
简单说,反射机制值得是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息。
2、java反射机制提供了什么功能?
在运行时能够判断任意一个对象所属的类
在运行时判断任意一个类所具有的成员变量和方法
在运行时调用任一对象的方法、设置属性值
在运行时创建类对象
3、哪里用到反射机制?
jdbc中有一行代码:Class.forName(‘com.mysql.jdbc.Driver.class’).newInstance();那个时候只知道生成驱动对象实例,后来才知道,这就是反射,现在很多框架都用到反射机制,hibernate,struts都是用反射机制实现的。
4、反射机制的优缺点?
静态编译:在编译时确定类型,绑定对象,即通过
优点:
动态编译:运行时确定类型,绑定对象。动态编译最大限度的发挥了java的灵活性,体现了多态的应用,有利于降低类之间的耦合性。
缺点:
它的缺点是对性能有影响。使用反射基本上是一种解释操作,我们可以告诉JVM,我们希望做什么并且它满足我们的要求。这类操作总是慢于只直接执行相同的操作。
获取Class的方法有3种
//第一种方式:
Classc1 = Class.forName(“Employee”);
//第二种方式:
//java中每个类型都有class 属性.
Classc2 = Employee.class;
//第三种方式:
//java语言中任何一个java对象都有getClass 方法
Employeee = new Employee();
Classc3 = e.getClass(); //c3是运行时类 (e的运行时类是Employee)
设置对象属性的方法
调用对象方法的用法