反射是指在程序运行期可以得到一个对象的所有信息

    反射的作用
    在运行时判断一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断一个类所具有的成员方法和变量,在运行时调用一个对象的方法;生成动态代理。

    获取类的Class
    通过类的全路径名Class class1 = Class.forName(“java.lang.String”);
    通过.Class
    Class class2 = String.class;
    通过类对象的getClass()方法
    Class class3 = str.getClass();
    在运行期间只有一个Class对象,上面三种方法获取到的是一个对象

    通过反射创建对象
    Apple apple = (Apple) class.newInstance;
    Apple apple = (Apple) constructor.newInstance;
    通过class只能使用默认的构造方法,而使用构造器的话则可以选择特定的构造方法

    通过反射类获取类的属性、方法、构造器