Java中有个类叫Class
每装载一个新类时,java虚拟就会在java堆中创建一个Class这个类的实例。这个实例代表Class类型,通过实例获取类型信息
该类的一些方法
获取Class实例所代表类的方法
Method[] getMethods()
获取Class实例所代表类的成员变量
Field[] getFields()
获取Class实例所代表类的构造方法
Constructor<?>[] getDeclaredConstructors()
Class对象
- 每编译一个.java文件,就会产生一个.class文件和Class对象,Class对象被保存在.class文件中。一个类只有一个Class对象。
- 当程序第一次引用类的静态变量(构造方法也是静态成员,所以使用new操作符创建也算引用类的静态变量)时,会被JVM的类加载器动态地加载到JVM中。
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 的运行时类。