摘要: 参考来源:http://blog.csdn.net/heyutao007/article/details/49738887 AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在 阅读全文
posted @ 2017-08-14 23:25 奋斗的少年WH 阅读(243) 评论(0) 推荐(0)
摘要: ----此处是JDK动态代理----package d18_5_2; public interface IDog { void info(); void run(); } package d18_5_2; public class GunDog implements IDog { @Override public void info() { System.out.pr... 阅读全文
posted @ 2017-08-14 23:12 奋斗的少年WH 阅读(139) 评论(0) 推荐(0)
摘要: package d18_5_1; public interface Person { void walk(); void sayHello(String name); } package d18_5_1; /** * proxy提供了两个方法来创建动态代理类和动态代理实例 * static Class getProxyClass(ClassLoader loader,C... 阅读全文
posted @ 2017-08-14 23:09 奋斗的少年WH 阅读(243) 评论(0) 推荐(0)
摘要: package d18_4_2; import java.lang.reflect.Array; /** * 常用方法 * static Object newInstance(Class componentType,int.. length) * 创建一个具有指定元素类型,指定维度的新数组 * * static xxx getXxx(Object array,int index)... 阅读全文
posted @ 2017-08-14 23:08 奋斗的少年WH 阅读(132) 评论(0) 推荐(0)
摘要: package d18_4_2; /** * 一般情况下,我们并不能对类的私有字段进行操作,利用反射也不例外, * 但有的时候,例如要序列化的时候,我们又必须有能力去处理这些字段, * 这时候,我们就需要调用AccessibleObject上的setAccessible()方法来允许这种访问, * 而由于反射类中的Field,Method和Constructor继承自Accessible... 阅读全文
posted @ 2017-08-14 23:07 奋斗的少年WH 阅读(189) 评论(0) 推荐(0)
摘要: package d18_4_2; import java.lang.reflect.Field; /** * Field * getXxx(Object obj):获取obj对象的F属性值, * setXxx(Object obj,Xxx val):将obj对象的该Field设置成val值 * 注意 阅读全文
posted @ 2017-08-14 23:07 奋斗的少年WH 阅读(136) 评论(0) 推荐(0)
摘要: package d18_4_1; /** * 创建对象1 */ import java.io.FileInputStream; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Properties; public class ObjectPoolFact... 阅读全文
posted @ 2017-08-14 23:05 奋斗的少年WH 阅读(122) 评论(0) 推荐(0)
摘要: 内部类 接口、枚举、注释类型 阅读全文
posted @ 2017-08-14 12:33 奋斗的少年WH 阅读(160) 评论(0) 推荐(0)
摘要: package d18_3_1; /** * Class类上所包含的注解 * * getAnnotation(Class annotationClass) 获取该元素上指定的类型的注解 * getAnnotations():返回此元素上存在的所有注解 * getDeclaredAnnotations():返回直接存在于此元素上的所有注解 */ import java.lang.an... 阅读全文
posted @ 2017-08-14 12:28 奋斗的少年WH 阅读(506) 评论(0) 推荐(0)
摘要: package d18_3_1; import java.lang.reflect.Method; import java.util.Arrays; /** * 获取Class对应类所包含的方法的四个方法 * * 运行结果 * [public void d18_3_1.Test3.setAge(int), public int d18_3_1.Test3.getAge(), pro... 阅读全文
posted @ 2017-08-14 12:27 奋斗的少年WH 阅读(189) 评论(0) 推荐(0)
摘要: package d18_3_1; import java.lang.reflect.Field; import java.util.Arrays; /** * 获取Class对应类所包含的属性的四个方法 * * 运行结果 * [private java.lang.String d18_3_1.Test4.name, protected int d18_3_1.Test4.age, ... 阅读全文
posted @ 2017-08-14 12:27 奋斗的少年WH 阅读(252) 评论(0) 推荐(0)
摘要: 获取构造器信息 阅读全文
posted @ 2017-08-14 12:26 奋斗的少年WH 阅读(189) 评论(0) 推荐(0)
摘要: package d18_3_1; /** * Java中的java.lang.Class,简单理解就是为每个java对象的类型标识的类, * 虚拟机使用运行时类型信息选择正确的执行方法,用来保存这些运行时类型信息的就是Class类。 * 虚拟机为每种类型管理一个独一无二的对象,即Class对象, * 当类被加载时,对应的Class类型对象会通过调用类加载器中的 defineClass方... 阅读全文
posted @ 2017-08-14 12:24 奋斗的少年WH 阅读(140) 评论(0) 推荐(0)