Java面试题集锦07—Java的反射机制

27.反射的原理是什么
反射是为了能够动态的加载一个类,动态的调用一个方法,动态的访问一个属性等动态要求而设计的。它的出发点就在于JVM会为每个类创建一个java.lang.Class类的实例,通过该对象可以获取这个类的信息,然后通过使用java.lang.reflect包下得API以达到各种动态需求。

28.Class类的含义和作用是什么
每一个Class类的对象就代表了一种被加载进入JVM的类,它代表了该类的一种信息映射。开发者可以通过3种途径获取到Class对象。

  • Class的forName()方法的返回值就是Class类型,也就是动态导入类的Class对象的引用。
    public static Class forName(String className) throws ClassNotFoundException
  • 每个类都会有一个名称为Class的静态属性,通过它也是可以获取到Class对象的,示例代码如下:
    Class clazz = Student.class; // 访问Student类的class属性
  • Object类中有一个名为getClass的成员方法,它返回的是对象的运行时类的Class对象。因为Object类是所有类的父类,所以,所有的对象都可以使用该方法得到它运行时类的Class对象,示例代码如下:
    Student stu = new Student();
    Class clazz = stu.getClass(); // 调用Student对象的getName方法

你可能感兴趣的:(Java面试题集锦07—Java的反射机制)