Java中有个类叫Class
每装载一个新类时,java虚拟就会在java堆中创建一个Class这个类的实例。这个实例代表Class类型,通过实例获取类型信息
该类的一些方法

获取Class实例所代表类的方法
Method[] getMethods()
获取Class实例所代表类的成员变量
Field[] getFields()
获取Class实例所代表类的构造方法
Constructor<?>[] getDeclaredConstructors()

Class对象

  1. 每编译一个.java文件,就会产生一个.class文件和Class对象,Class对象被保存在.class文件中。一个类只有一个Class对象。
  2. 当程序第一次引用类的静态变量(构造方法也是静态成员,所以使用new操作符创建也算引用类的静态变量)时,会被JVM的类加载器动态地加载到JVM中。
  3. Class对象被用于创建该类的实例对象:一旦JVM将Class对象加载到内存中,Class对象用来创建该类的所有对象。

    Class.forName()

    参数:
    …….className - 所需类的全限定名。
    返回:
    …….具有指定名的类的 Class 对象。
    调用 forName(“X”) 将导致命名为 X 的类被初始化。

一些Class类的其他方法:

newInstance(),创建并返回此 Class 对象所表示的类的一个新实例(Object类型),使用该方法的类,必须有默认构造方法
getInterfaces(),返回该类所实现的接口的一个数组。
getSuperclass(),返回表示此 Class 所表示的实体的父类的 Class对象
getName(),以 String 的形式返回此 Class 对象全限定名

Object.getClass()

返回
…….此 Object 的运行时类。