![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
05 高级_反射
反射
Yorick_Xu
这个作者很懒,什么都没留下…
展开
-
第一课 反射概述
反射概述1 Java Reflection概述2 动态语言和静态语言3 Java反射机制提供的功能4 反射相关的主要API5 相关疑问1 Java Reflection概述Reflection(反射):视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任何对象的内部属性及方法加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构原创 2020-08-19 11:51:46 · 275 阅读 · 1 评论 -
第二课 Class类的理解
Class类的理解1 类的加载过程2 获取Class实例的方式3 有Class对象的类型4 类的加载过程5 ClassLoader6 创建运行时类的对象及动态性演示1 类的加载过程程序经过javac.exe命令编译后,产生一个或多个字节码文件(.class文件)使用java.exe命令对某个字节码文件进行解释运行。相当于将某个字节码文件加载到内存中,此过程称为类的加载。加载到内存中的类,称之为运行时类,此运行时类就作为Class的一个实例加载到内存中的运行时类,会缓存一定的时间,在此时间之内,我们原创 2020-08-27 19:54:59 · 379 阅读 · 0 评论 -
第三课 获取运行时类的多种结构
获取运行时类的多种结构1 获取属性1.1 获取属性结构1.2 获取属性相关信息2 获取方法2.1 获取方法结构2.2 获取方法相关信息3 其他信息的获取3.1 获取构造器结构3.2 获取父类结构3.3 获取其他结构1 获取属性1.1 获取属性结构方法返回值所获取内容getFields()Field[]获取当前运行时类及其父类中声明为public权限的属性getDeclaredFields()Field[]获取当前运行时类中声明的所有属性(不包含父类中声明的属性)原创 2020-08-27 19:56:09 · 270 阅读 · 0 评论 -
第四课 调用运行时类的多种结构
调用运行时类的多种结构1 调用运行时类中指定属性2 调用运行时类中指定方法3 调用运行时类中构造器1 调用运行时类中指定属性/* * 获取public权限的属性值 */public static void test01() throws Exception { Class clazz = PersonFull.class; // 实例化对象 PersonFull p1 = (PersonFull) clazz.newInstance(); // 获取属性:只能获取public权限的属性值,原创 2020-08-27 19:57:11 · 102 阅读 · 0 评论 -
第五课 动态代理
动态代理1 代理设计模式2 动态代理实现1 代理设计模式什么是动态代理动态代理是指客户通过代理类来调用其他对象的方法,并且是在程序运行时根据需要动态创建目标类的代理对象。使用一个代理将对象包装起来,然后用该代理对戏那个取代原始对象。任何对原始对象的调用都要通过代理。代理对象决定是否以及何时将方法调用转到原始对象上动态代理使用场合调试远程方法调用动态代理相比于静态代理的优点抽象角色中(接口)声明的所有方法都被转移到调用处理器一个集中的方法中处理,这样,可以更加原创 2020-08-27 19:58:57 · 101 阅读 · 0 评论