java¶¯Ì¬´úÀí
¶¯Ì¬´úÀíÊÇÖ¸¿Í»§Í¨¹ý´úÀíÀàÀ´µ÷ÓÃÆäËü¶ÔÏóµÄ·½·¨
¶¯Ì¬´úÀíʹÓó¡ºÏ:
•
Ô¶³Ì·½·¨µ÷ÓÃ(RMI)
•
1.´´½¨Ò»¸öʵÏÖ½Ó¿ÚInvocationHandlerµÄÀ࣬Ëü±ØÐëʵÏÖinvoke·½·¨
2.´´½¨±»´úÀíµÄÀàÒÔ¼°½Ó¿Ú
3.ͨ¹ýProxyµÄ¾²Ì¬·½·¨
newProxyInstance(ClassLoader loader, Class[] interfaces, InvocationHandler h) ´´½¨Ò»¸ö´úÀí
4.ͨ¹ý´úÀíµ÷Ó÷½·¨
²Î¼û³ÌÐòVectorProxy.java
package com.langsin.dynamicproxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.List;
import java.util.Vector;
public class VectorProxy implements InvocationHandler
{
private Object proxyobj;
public VectorProxy(Object obj)
{
proxyobj = obj;
}
public static Object factory(Object obj)
{
Class<?> cls = obj.getClass();
return Proxy.newProxyInstance(cls.getClassLoader(),
cls.getInterfaces(), new VectorProxy(obj));
}
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable
{
System.out.println("before calling " + method);
if (args != null)
{
for (int i = 0; i < args.length; i++)
{
System.out.println(args[i] + "");
}
}
Object object = method.invoke(proxyobj, args);
System.out.println("after calling " + method);
return object;
}
@SuppressWarnings("unchecked")
public static void main(String[] args)
{
List<String> v = (List<String>) factory(new Vector<String>(10));
v.add("New");
v.add("York");
System.out.println(v);
v.remove(0);
System.out.println(v);
}
}
²Î¼û³ÌÐòFoo.java
²Î¼û³ÌÐòFooImpl.java
²Î¼û³ÌÐòFooImpl2.java
²Î¼û³ÌÐòCommonInvocationHandler.java
²Î¼û³ÌÐòDemo.java
package com.langsin.dynamicproxy;
public interface Foo
{
void doAction();
}
package com.langsin.dynamicproxy;
public class FooImpl implements Foo
{
public FooImpl()
{
}
public void doAction()
{
System.out.println("in FooImp1.doActio
Ïà¹ØÎĵµ£º
Èç¹ûÄãÈ¥ÃæÊÔµÄʱºò£¬ÃæÊÔ¹Ù¿¼Ä㣬ΪʲôҪÔÚjavaÖеÄmain·½·¨Ç°¼Ópublic static voidÕâЩÐÞÊηû£¬ÄãÖªµÀÈçºÎÈ¥»Ø´ðÂð£¿ÏÂÃæÎÒΪ´ó¼Ò½²½âһϰɣ¡Èç¹ûÓÐʲôȱ©µÄ»°£¡»¶Ó´ó¼ÒµÄÖ¸µã£¡
Ê×ÏÈ£¬ÎªÊ²Ã´ÒªÓÃpublic£º
ÒòΪÔÚÔËÐгÌÐòʱ£¬jvmÒªµ÷ÓÃmain·½·¨£¬µ«ÎÒÃǶ¼Ó¦¸ÃÖªµÀjvm ......
Ŀ¼
ÕªÒª ……………………………………………………………………2
ÎÄÏ××ÛÊö ……………………&h ......
´úÀíģʽµÄ×÷ÓÃÊÇ£ºÎªÆäËû¶ÔÏóÌṩһÖÖ´úÀíÒÔ¿ØÖƶÔÕâ¸ö¶ÔÏóµÄ·ÃÎÊ¡£
ÔÚijЩÇé¿öÏ£¬Ò»¸ö¿Í»§²»Ïë»òÕß²»ÄÜÖ±½ÓÒýÓÃÁíÒ»¸ö¶ÔÏ󣬶ø´úÀí¶ÔÏó¿ÉÒÔÔÚ¿Í»§¶ËºÍÄ¿±ê¶ÔÏóÖ®¼äÆðµ½ÖнéµÄ×÷ÓÃ
ÀýÈ磺¿ÍÈËÏëÇëÊг¤(ÕæÊǽÇÉ«)³Ô·¹ µ«ÊÇÇë²»¶¯Êг¤ Ö»ºÃÕÒÊг¤ÃØÊé(´úÀí½ÇÉ«) µ«ÊÇ×îºóΪ¿ÍÈË×öÊ嵀 »¹ÊÇ ......
===================================TimerTask=======================================
import java.util.TimerTask;
import java.util.Calendar;
public class MyTask extends TimerTask
{
private ......
´Ójdk1.5¿ªÊ¼£¬JavaÖпªÊ¼Ö§³Ö·¶ÐÍÁË¡£·¶ÐÍÊÇÒ»¸öºÜÓÐÓõıà³Ì¹¤¾ß£¬¸øÎÒÃÇ´øÀ´Á˼«´óµÄÁé»îÐÔ¡£ÔÚ¿´ÁË¡¶javaºËÐıà³Ì¡·Ö®ºó£¬ÎÒСÓÐÊÕ»ñ£¬Ð´³öÀ´Óë´ó¼Ò·ÖÏí¡£
Ëùν·¶ÐÍ£¬Îҵĸоõ¾ÍÊÇ£¬²»Óÿ¼ÂǶÔÏóµÄ¾ßÌåÀàÐÍ£¬¾Í¿ÉÒÔ¶Ô¶ÔÏó½øÐÐÒ»¶¨µÄ²Ù×÷£¬¶ÔÈκζÔÏó¶¼ÄܽøÐÐͬÑùµÄ²Ù×÷¡£Õ ......