简述Java动态代理
来源:互联网 发布:阿里云 服务器 使用 编辑:程序博客网 时间:2024/05/22 07:44
引入引用变量的概念
栈内存负责存储对象名称和局部变量的值,而堆内存存储对象值
每一个对象,在声明对象的时候,会在栈对象中分配内存,例如Duck d,那么栈内存则会分配位置给D
,而d里面的参数和值,都是没有的,为啥,因为没有给d分配内存,只是声明了一个对象而已。而new关键字
就是为对象申请了内存,而该对象内存则存储在系统堆内存里面。。。这也是引用变量!
而比较特殊的是基本数据类型,他们的内存都是存储在栈内存里面:举例:说如果对象在栈内存里的存储方式为Duck d,那么局部变量的存储就是Duck d = new Duck();
2.值传递和引用传递
通过判断对象的内存来判断是值传递还是引用传递,从而达到修改数值的目的!
String不是基本数据类型String str = “String”;其实是已经实例化了对象
从上部分可以明白,如果数据是存储在栈内存,则为值传递,如果是堆内存,则为引用传递
3.动态对象代理
还是比较有用的,例如需要处理一件事物的时候,又要插入做其他事情。。。
正如如果需要处理很多事情,通过reflect.Proxy的代理去处理,对数据资源进行统一的处理!
需要调用Reflect的两个接口,一个是:InvocationHandler,另一个是newProxyInstance()
实现客户对数据的动态代理。。。我也不知道是毛东西,连反射都不知道是啥,说个JB,看代码吧。。
public class Proxy implements InvocationHandler {
private Superman target;
public Proxy(Superman target) {
this.target = target;
}
@Override
public Object invoke(Object o, Method method, Object[] objects) throws Throwable {
System.out.println(“大量的评估工作”);
target.setMoney(5);
method.invoke(target, objects);
System.out.println(target.getMoney()>10?”吃屎去吧”:”代购去吧”);
return null;
}
}
public static void main(String[] args) {
//动态代理
Superman s = new Superman();
Proxy p = new Proxy(s);
Subject s2 = (Subject) java.lang.reflect.Proxy.newProxyInstance(s.getClass().getClassLoader(), s.getClass().getInterfaces(), p);
s2.shopping();
}}
Superman s = new Superman();
Proxy p = new Proxy(s);
Subject s2 = (Subject) java.lang.reflect.Proxy.newProxyInstance(s.getClass().getClassLoader(), s.getClass().getInterfaces(), p);
s2.shopping();
0 0
- 简述Java动态代理
- Java动态代理简述
- java动态编程简述
- Java 代理,动态代理
- 动态代理、类加载器简述
- [Java] Java 动态代理
- Java的三种代理模式简述
- java代理及动态代理
- java代理模式--动态代理
- Java静态代理、动态代理
- Java 代理之 动态代理
- Java 代理与动态代理
- java静态代理,动态代理
- 代理模式&java动态代理
- Java代理与动态代理
- Java静态代理动态代理
- JAVA代理模式--动态代理
- java 代理和动态代理
- python使用ip代理抓取网页
- Linux内核的一种数据结构——task_struct
- Java for XML: JAXP、JAXB、JAXM、JAX-RPC、JAX-WS
- IOS轮播图实现
- 多线程实例买票
- 简述Java动态代理
- std::async 实现链式调用
- Android Binder设计与实现 - 设计篇
- NIO学习--核心概念与基本读写
- Linux下Perl的安装 此博文包含图片
- Oracle系列问题解决
- 工业4.0提出者孔翰宁详解工业4.0
- Svn与Git的区别总结
- hihocoder 1121