JAVA--反射机制的概述

        反射是被视为动态语言的关键,反射机制允许程序在执行期间借助反射API取得任何类的内部信息,并直接操作任意类的内部属性和方法。
        加载完类之后,在堆内存的方法区中就产生一个Class类型的对象,一个类只有一个Class对象,这个对象包含了完整的类的结构信息,我们可以通过这个结构看到类的结构信息,这个类就像一个镜子一样,透过这个镜子可以看到类的结构,所以我们形象的称之为"反射"。

Java反射机制提供的功能:

          1: 在运行时判断任意一个类的对象
          2: 在运行时构造任意一个类的对象
          3: 在运行时判断任意一个类具有的成员变量和方法
          4: 在运行时获取泛型信息
          5: 在运行时调用任意一个对象的成员变量和方法
          6: 在运行时处理注解
          7: 生成动态代理

类的加载过程:

        程序经过java.exe命令之后,会生成一个或多个字节码文件(.class结尾),接着我们使用javac.exe命令对某个字节码文件进行解释运行,相当于将某个字节码文件加载进内存,此过程称为类的加载过程。加载进内存的类称之为运行时类,此时运行时类就作为Class的一个实例。

类加载器的作用:

     将Class文件字节码内存加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后生成一个代表类的java.lang.Class对象作为方法区中类数据的访问入口(即应用地址)。

类缓存:

    标准的javaSE类加载器可以按照要求查找类,但一旦某个类被加载到类加载器中,它将维持加载(缓存)一段时间,不过JVM垃圾回收机制可以回收这些Class对象。

类加载器的分类:

    引导加载器(Bootstrap ClassLoader)
    扩展加载器(Extension ClassLoader)
    系统类加载器(应用程序类加载器,AppClassLoader)
    用户自定义类加载器

你可能感兴趣的:(java,开发语言)