介绍
这篇文章将为大家详细讲解有关java JDK中动态代理的原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
java可以用来干什么
java主要应用于:1。网页开发;2。Android开发;3。客户端开发;4。网页开发;5。企业级应用开发;6。Java大数据开发;7。游戏开发等。
<强> 1,说明强>
Java中提供了一个动态代理类代理,代理并不是我们所说的代理对象的类,而是提供了一个创建代理对象的静态方法(newProxyInstance)来获取代理对象。
<强> 2,实例强>
public class HelloWorld { ,,,public static void main (String [], args), { ,,,,,,,//,获取代理对象 ,,,,,,,ProxyFactory factory =, new ProxyFactory (); ,,,,,,, ,,,,,,,SellTickets proxyObject =, factory.getProxyObject (); ,,,,,,, ,,,,,,,proxyObject.sell (); ,,,} } ,//,卖票接口 interface SellTickets  { ,,,void 出售(); } ,//,火车站,火车站具有卖票功能,所以需要实现SellTickets接口 class TrainStation  implements SellTickets  { ,,@Override ,,,public void 出售(),{ ,,,,,,,System.out.println(“火车站卖票“); ,,,} } ,//,代理工厂,用来创建代理对象 class ProxyFactory  { ,,,private TrainStation station =, new TrainStation (); , ,,,public SellTickets getProxyObject (), { ,,,,,,,//,使用代理获取代理对象 , ,,,,,,,/* * ,,,,,,,,*,newProxyInstance(),方法参数说明: ,,,,,,,,*,,ClassLoader 装载机:,类加载器,用于加载代理类,使用真实对象的类加载器即可 ,,,,,,,,*,,Class<?在[],接口:真实对象所实现的接口,代理模式真实对象和代理对象实现相同的接口 ,,,,,,,,*,,InvocationHandler h:代理对象的调用处理程序 ,,,,,,,*/, ,,,,,,,SellTickets SellTickets =, (SellTickets), Proxy.newProxyInstance ( ,,,,,,,,,,,,,,,station.getClass () .getClassLoader (), ,,,,,,,,,,,,,,,new InvocationHandler (), { ,,,,,,,,,,,,,,,,,,,/* * ,,,,,,,,,,,,,,,,,,,,*,InvocationHandle中调用方法参数说明: ,,,,,,,,,,,,,,,,,,,,*,,代理:代理对象 ,,,,,,,,,,,,,,,,,,,,*,,方法:对应于在代理对象上调用的方法的方法实例 ,,,,,,,,,,,,,,,,,,,,*,,arg游戏:代理对象调用接口方法是传递的实际参数 ,,,,,,,,,,,,,,,,,,,*/,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,public Object 调用(Object 代理,Method 方法,对象[],args), throws Throwable { ,,,,,,,,,,,,,,,,,,,,,,,System.out.println(“代理点收取一些服务费用(JDK动态代理方法)“); ,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,//,执行真实对象 ,,,,,,,,,,,,,,,,,,,,,,,Object result =, method.invoke(车站,,args); ,,,,,,,,,,,,,,,,,,,,,,,return 结果; ,,,,,,,,,,,,,,,,,,,} null null null nulljava JDK中动态代理的原理是什么