反射

简介:Reflection视为动态语言的关键,允许程序在执行期间借助 Reflection API 取得任何类的内部信息,从而操作任意对象的内部属性和方法。

功能:运行时获取类的内部信息(注解也是)

类的加载:java文件--javac.exe--.class文件--java.exe加载到内存(由JVM类加载器完成)--运行时类(存在于缓存区,本身就是一个Class的实例)

类加载
整个过程
类加载器

反射相关API

java.lang.Class:代表一个类

简介:Object类定义了getClass方法返回一个Class类,该类是反射的源头,通过对象反射求出类的名称。

          (通过运行时类的对象,调用器getClass方法返回其运行时类)

功能:创建运行时类对应的对象,获取属性、方法、构造、内部类、父类、所在包、异常、注解等。

获取Class类

获取Class类

获取全部信息

获取全部信息

动态代理

简介:通过代理类来调用目标类对象的方法,并且是在程序运行时根据需要动态创建目标类的代理对象。

原理:使用代理将对象包装起来代替原始对象,任何对原始对象的调用都需通过代理,代理对象再决定对原始对象调用的一些操作。

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