java反射学习

1.类加载器

  (1) 负责将class文件加载到内存中,并为之生成对应的Class对象;

   (2)类加载器的组成

Bootstrap ClassLoader  根类加载器

   也被称为引导类加载器,负责java核心类的加载(比如System,String等在JDK中jre的lib目录下rt.jar文件中)

Extension ClassLoader 扩展类加载器

负责JRE的的扩展目录中jar包的加载(在JDK中jre的lib目录下的ext目录)

System ClassLoader 系统类加载器

负责在JVM启动时加载来自java命令的class文件,以及classpath环境变量所指定的jar包和类路径)

2.反射

        JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性,这样动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。(简单说:反射就是通过class文件对象,去使用该文件中的成员变量,构造方法,成员方法)

3.获取class文件对象的方式

A:Object类的getClass()方法

       Person p = new Person();

       Class c = p.getClass();

B:数据类型的静态属性class

      Class c3 = Person.class;

C:Class类中的静态方法

        public static Class forName(String className)

        Class c4 = Class.forName("Reflect.Person");  //这里需要完整类名

4.通过反射获取构造方法并使用

(1)获取构造方法

public Constructor[] getConstructors(); 所有公共构造方法

public Constructor[] getDeclaredConstructors(); 所有构造方法

(2)获取单个构造方法

你可能感兴趣的:(java反射学习)