类的加载、连接和初始化

final变量如果是静态的,要么定义时初始化,要么在静态代码块中初始化。final变量如果不是静态的,要么定义时初始化,要么在非静态代码块中初始化。

通过反射查看类信息

获得Class对象

  1. 使用Class类的forName()静态方法。出入的参数是字符串,全限定类名
  2. 调用类的class属性
  3. 调用对象的getClass()方法 ```java String.forName(“java.lang.String”); String.class;

String s = “aa”; s.getClass(); ```

从Class中获取信息

获取构造器

  1. Connstructor getConstructor(Class<?>…parameterTypes)

返回此Class对象对应类的、带指定形参列表的public构造器

  1. Constructor<?>[] getConstructors()

返回此Class对象对应类的所有public构造器

  1. Connstructor getDeclaredConstructor(Class<?>…parameterTypes)

返回此Class对象对应类的、带指定形参列表的构造器,与构造器的访问权限无关

  1. Constructor<?>[] getDeclaredConstructors()

返回此Class对象对应类的所有public构造器,与构造器的访问权限无关

获取方法

  1. Method getMethod(String name,Class<?>…parameterTypes)

返回此Class对象对应类的、带指定形参列表的public方法

  1. Method[] getMethods()

返回此Class对象对应类的所有public方法

  1. Method getDeclaredMethod(String name,Class<?>…parameterTypes)

返回此Class对象对应类的、带指定形参列表的方法,与方法的访问权限无关

  1. Method[] getDeclaredMethods()

返回此Class对象对应类的所有public方法,与方法的访问权限无关

获取成员变量

  1. Field getField(String name)

返回此Class对象对应类的、带指定形参列表的public成员变量

  1. Field[] getFields()

返回此Class对象对应类的所有public成员变量

  1. Field getDeclaredField(String name)

返回此Class对象对应类的、带指定形参列表的成员变量,与成员变量的访问权限无关

  1. Field[] getDeclaredFields()

返回此Class对象对应类的所有public成员变量,与成员变量的访问权限无关

获取Annotation

获取内部类

获取外部类

获取接口

获取父类

获取此类或接口的修饰符

获取此类的包

获取此类的名称

String getName()
获取类名
String getSimpleName()
获取类的简称

判断该类是否是接口、枚举、注解类型

Field类