Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

java¶¯Ì¬´úÀíÀà

 
Java¶¯Ì¬´úÀíÀàλÓÚjava.lang.reflect°üÏ£¬Ò»°ãÖ÷񻃾¼°µ½ÒÔÏÂÁ½¸öÀࣺ
(1)Interface InvocationHandler£º¸Ã½Ó¿ÚÖнö¶¨ÒåÁËÒ»¸ö·½·¨
§public object invoke(Object obj,Method method, Object[] args)
ÔÚʵ¼ÊʹÓÃʱ£¬µÚÒ»¸ö²ÎÊýobjÒ»°ãÊÇÖ¸´úÀíÀ࣬methodÊDZ»´úÀíµÄ·½·¨£¬ÈçÉÏÀýÖеÄrequest()£¬argsΪ¸Ã·½·¨µÄ²ÎÊýÊý×é¡£ Õâ¸ö³éÏó·½·¨ÔÚ´úÀíÀàÖж¯Ì¬ÊµÏÖ¡£
(2)Proxy£º¸ÃÀ༴Ϊ¶¯Ì¬´úÀíÀ࣬×÷ÓÃÀàËÆÓÚÉÏÀýÖеÄProxySubject£¬ÆäÖÐÖ÷Òª°üº¬ÒÔÏÂÄÚÈÝ
 
 
 
protected Proxy(InvocationHandler h)£º¹¹Ô캯Êý£¬ÓÃÓÚ¸øÄÚ²¿µÄh¸³Öµ¡£
static Class getProxyClass (ClassLoader loader, Class[] interfaces)£º»ñµÃÒ»¸ö´úÀíÀ࣬ÆäÖÐloaderÊÇÀà×°ÔØÆ÷£¬interfacesÊÇÕæÊµÀàËùÓµÓеÄÈ«²¿½Ó¿ÚµÄÊý×é¡£
static Object newProxyInstance(ClassLoader loader, Class[] interfaces, InvocationHandler h)£º·µ»Ø´úÀíÀàµÄÒ»¸öʵÀý£¬·µ»ØºóµÄ´úÀíÀà¿ÉÒÔµ±×÷±»´úÀíÀàʹÓÃ(¿ÉʹÓñ»´úÀíÀàµÄÔÚSubject½Ó¿ÚÖÐÉùÃ÷¹ýµÄ·½·¨)
 
ËùνDynamic ProxyÊÇÕâÑùÒ»ÖÖclass£ºËüÊÇÔÚÔËÐÐʱÉú³ÉµÄclass£¬ÔÚÉú³ÉËüʱÄã±ØÐëÌṩһ×éinterface¸øËü£¬È»ºó¸Ãclass¾ÍÐû³ÆËüʵÏÖÁËÕâЩ interface¡£Ä㵱Ȼ¿ÉÒ԰ѸÃclassµÄʵÀýµ±×÷ÕâЩinterfaceÖеÄÈκÎÒ»¸öÀ´Óᣵ±È»£¬Õâ¸öDynamic ProxyÆäʵ¾ÍÊÇÒ»¸öProxy£¬Ëü²»»áÌæÄã×÷ʵÖÊÐԵŤ×÷£¬ÔÚÉú³ÉËüµÄʵÀýʱÄã±ØÐëÌṩһ¸öhandler£¬ÓÉËü½Ó¹Üʵ¼ÊµÄ¹¤×÷
 
ÔÚʹÓö¯Ì¬´úÀíÀàʱ£¬ÎÒÃDZØÐëʵÏÖInvocationHandler½Ó¿Ú
²Î¼û³ÌÐò Subject.java
²Î¼û³ÌÐò RealSubject.java
²Î¼û³ÌÐò DynamicSubject.java
²Î¼û³ÌÐò Client.java
package com.langsin.dynamicproxy;
//³éÏó½ÇÉ«(֮ǰÊdzéÏóÀ࣬´Ë´¦Ó¦¸ÄΪ½Ó¿Ú)£º
public interface Subject
{
abstract public void request();
}
package com.langsin.dynamicproxy;
//¾ßÌå½ÇÉ«(¾Ö³¤)
public class RealSubject implements Subject
{
public RealSubject()
{
}
public void request()
{
System.out.println("from real subject.");
}
}
package com.langsin.dynamicproxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
//´úÀí´¦ÀíÆ÷(ÃØÊé)
/**
* ¸Ã´úÀíÀàµÄÄÚ²¿ÊôÐÔΪObjectÀ࣬ʵ¼ÊʹÓÃʱͨ¹ý¸ÃÀàµÄ¹¹Ô캯ÊýDynamicSubject(Object obj)¶ÔÆ


Ïà¹ØÎĵµ£º

JAVAÖг£ÓÃÓ¢Îļòдȫƴ¼°ÖÐÎĺ¬Òå

×òÌì¿´ÕÅТÏéµÄjava¸ß¼¶½Ì³Ì£¬Ëû˵һ°ëÃæÊÔjavaÖÐÓ¢ÎļòдÒâ˼µÄ¶¼ÊÇһЩ´ó¹«Ë¾£¬Ò»¸ö¿¼²ìÄãÕæµÄÓùýÕâЩ¶«Î÷£¬È·Êµ¶ÔÕâЩ¶«Î÷Óиö»ù±¾Á˽⣬ͬʱÐèÒªÄã¾ßÓÐÒ»¶¨µÄÓ¢Óïˮƽ¡£ËùÒÔÔÝʱ²¹²¹¿Î£¬ºÇºÇ¡£
API (Application Programming Interface) Ó¦Óñà³Ì½Ó¿Ú
JRE (Java Runtime Enviroment) Java ÔËÐÐʱ»·¾³
JDK (Java Dev ......

javaÖеÄmainÄãÖªµÀÂð

   Èç¹ûÄãÈ¥ÃæÊÔµÄʱºò£¬ÃæÊÔ¹Ù¿¼Ä㣬ΪʲôҪÔÚjavaÖеÄmain·½·¨Ç°¼Ópublic static voidÕâЩÐÞÊηû£¬ÄãÖªµÀÈçºÎÈ¥»Ø´ðÂð£¿ÏÂÃæÎÒΪ´ó¼Ò½²½âһϰɣ¡Èç¹ûÓÐʲôȱ©µÄ»°£¡»¶Ó­´ó¼ÒµÄÖ¸µã£¡
   Ê×ÏÈ£¬ÎªÊ²Ã´ÒªÓÃpublic£º
   ÒòΪÔÚÔËÐгÌÐòʱ£¬jvmÒªµ÷ÓÃmain·½·¨£¬µ«ÎÒÃǶ¼Ó¦¸ÃÖªµÀjvm ......

JAVA±Ê¼Ç£¨Èý£©Êý¾Ý½á¹¹

¶¯Ì¬ÄÚ´æ·ÖÅä
´´½¨ºÍά»¤¶¯Ì¬Êý¾Ý½á¹¹ÒªÇó½øÐж¯Ì¬ÄÚ´æ·ÖÅ䣬¼´³ÌÐòÄܹ»ÔÚÖ´ÐÐʱ»ñµÃ¸ü¶àµÄÄÚ´æ¿Õ¼äÀ´·Åнáµã£¬²¢ÔÚ²»ÐèÒªÕâЩÄÚ´æÊ±ÊÍ·ÅËûÃÇ¡£
Êý¾ÝÁбí¿ÉÒÔÓÃÊý¾Ý½øÐд洢£¬µ«ÊÇÓÃÁ´±í´æ´¢Óм¸¸öºÃ´¦¡£ÔÚÊý¾Ý½á¹¹Òª±íʾµÄÊý¾ÝÔªËØµÄÊýÄ¿ÎÞ·¨Ô¤ÏÈÈ·¶¨µÄÇé¿öÏ£¬Á´±íÄܹ»Ìṩ¸üºÏÀíµÄ¿Õ¼ä·ÖÅä¡£Á´±íÊǶ¯Ì¬µÄ£¬ËùÒÔÆä³¤¶È ......

java³ÌÐò~ÌìÊý


//ÊäÈëijÄêijÔÂijÌ죬Êä³öÕâÒ»ÌìÊÇÕâÒ»ÄêµÄµÚ¼¸Ìì
public class DaySum {
 public static void main(String[] args)
 {
  date da=new date();
  System.out.println(da.count(2008,12,31));
 }
 
}
class date
{
 int count(int  year,int month,int day) ......

ÉîÈëdz³öJavaÉè¼ÆÄ£Ê½Ö®ÊÊÅäÆ÷ģʽ


ͨ³££¬¿Í»§Àà(clients of class)ͨ¹ýÀàµÄ½Ó¿Ú·ÃÎÊËüÌṩµÄ·þÎñ¡£ÓÐʱ£¬ÏÖÓеÄÀà(existing class)¿ÉÒÔÌṩ¿Í»§ÀàµÄ¹¦ÄÜÐèÒª£¬µ«ÊÇËüËùÌṩµÄ½Ó¿Ú²»Ò»¶¨Êǿͻ§ÀàËùÆÚÍûµÄ¡£ÕâÊÇÓÉÓÚÏÖÓеĽӿÚÌ«Ïêϸ»òÕßȱ·¦Ïêϸ»ò½Ó¿ÚµÄÃû³ÆÓë¿Í»§ÀàËù²éÕҵIJ»Í¬µÈÖî¶à²»Í¬Ô­Òòµ¼Öµġ£
¡¡¡¡ÔÚÕâÖÖÇé¿öÏ£¬ÏÖÓеĽӿÚÐèҪת»¯(convert)Ϊ¿ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ