ProxyģʽÒÔ¼°java¶¯Ì¬´úÀíʵÏÖ
Ò». Proxyģʽ¶¨Òå:
ΪÆäËû¶ÔÏóÌṩһÖÖ´úÀíÒÔ¿ØÖÆÕâ¸ö¶ÔÏóµÄ·ÃÎÊ.
¶þ.ģʽ½â˵
Proxy´úÀíģʽÊÇÒ»ÖֽṹÐÍÉè¼ÆÄ£Ê½,Ö÷Òª½â¾öµÄÎÊÌâÊÇ:ÔÚÖ±½Ó·ÃÎʶÔÏóʱ´øÀ´µÄÎÊÌâ,±ÈÈç˵:Òª·ÃÎʵĶÔÏóÔÚÔ¶³ÌµÄ»úÆ÷ÉÏ.
ÔÚÃæÏò¶ÔÏóϵͳÖÐ,ÓÐЩ¶ÔÏóÓÉÓÚijЩÔÒò(±ÈÈç¶ÔÏó´´½¨¿ªÏúºÜ´ó,»òÕßijЩ²Ù×÷ÐèÒª°²È«¿ØÖÆ,»òÕßÐèÒª½ø³ÌÍâµÄ·ÃÎÊ),
Ö±½Ó·ÃÎÊ»á¸øÊ¹ÓÃÕß»òÕßϵͳ½á¹¹´øÀ´ºÜ¶àÂé·³,ÎÒÃÇ¿ÉÒÔÔÚ·ÃÎʴ˶ÔÏóʱ¼ÓÉÏÒ»¸ö¶Ô´Ë¶ÔÏóµÄ·ÃÎʲã,Õâ¸ö·ÃÎʲãÒ²½Ð´úÀí¡£
ProxyģʽÊÇ×î³£¼ûµÄģʽ,ÔÚÎÒÃÇÉú»îÖд¦´¦¿É¼û,±ÈÈçÏÖÔÚÓиöʲô¸ç,ÌØ±ðµÄ»ð,µ«ÊÇÐÔ±ðÒ»°ãÈË¿´²»³öÀ´,ÄãÈ¥ÎÊ"Ëû",È˼ÒÊÇ
´óÍó,²»ºÍÄãÖ±½Ó¶Ô»°,Ö»Óо¼ÍÈ˳öÃæ,Õâ¸ö¾¼ÍÈ˾ͿÉÒÔ¿´³ÉËûµÄ´úÀí.
Èý.½á¹¹Í¼
´«Í³µÄ½á¹¹Í¼ÈçÏÂ:
java¶¯Ì¬´úÀí½á¹¹Í¼ÈçÏÂ:
ËÄ.ʵÏÖ:
public interface Person {
public void ownSex();
public String isBoolean(String str);
}
public class SpringBrother implements Person {
public void ownSex() {
System.out.println("Female!");
}
public String isBoolean(String str) {
return "yes!";
}
}
public class MyInvocationHandler implements InvocationHandler {
private Object proxied = null; //±»´úÀíµÄ¶ÔÏó.
public MyInvocationHandler(Object proxied){
this.proxied = proxied;
}
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
System.out.println("---------- proxy: ----------\n" + proxy.getClass()
+ "\nmethod: " + method + "\nargs: " + args);
Object oo = method.invoke(proxied, args);// ·ÃÎʵײ㷽·¨,ÕâÀïÊÇmain·½·¨ÖеÄownSex»òÕßisBoolean,·µ»Ø·µ»ØÖµ
if(args!=null && args.length!=0){
for(Object o : args){
System.out.println(o);
}
}
if(!(oo==null)){
System.out.println(oo);
}
return null;
}
public static void main(String[] args) {
Person person = (Person)Proxy.newProxyInstance(MyInvocationHandler.class.getClassLoader(),
new Class[]{Person.class}, new MyInvocationHandler(new SpringBrother()));
person.ownSex();
person.isBoolean("is Female!
Ïà¹ØÎĵµ£º
1.JavaÔÚÐéÄâ»úÉÏÔËÐÐ
JavaÔ´´úÂë²¢²»ÊDZ»±àÒë³ÉΪÆÕͨµÄ»úÆ÷´úÂë¡£¶øÊDZ»·Òë³ÉΪÐéÄâ»ú¿ÉÒÔÖ´ÐеĴúÂë¡£Ò»¸öJava½âÊÍÆ÷×îÖÕÖ´ÐÐÕâЩ´úÂë¡£ÕâÆäÖÐûÓÐÁ¬½ÓµÄ¹ý³Ì£»½âÊÍÔÚÐèÒªµÄʱºò¶¯Ì¬µÄ¼ÓÔØÒ»Ð©Àࣻ
2.JavaÊÇÍêÈ«ÃæÏò¶ÔÏóµÄ
JavaÊÇÒ»ÖÖÍêÈ«ÃæÏò¶ÔÏóµÄÓïÑÔ¡£ÕâÒâζ×ÅÄã¶ÔÈκÎÒ»¸öJava¶ÔÏóËù×öµÄ¶ ......
1. Ê×ÏÈString²»ÊôÓÚ8ÖÖ»ù±¾Êý¾ÝÀàÐÍ£¬StringÊÇÒ»¸ö¶ÔÏó¡£
¡¡¡¡ÒòΪ¶ÔÏóµÄĬÈÏÖµÊÇnull£¬ËùÒÔStringµÄĬÈÏÖµÒ²ÊÇnull£»µ«ËüÓÖÊÇÒ»ÖÖÌØÊâµÄ¶ÔÏó£¬ÓÐÆäËü¶ÔÏóûÓеÄÒ»Ð©ÌØÐÔ¡£
¡¡¡¡2. new String()ºÍnew String(“”)¶¼ÊÇÉêÃ÷Ò»¸öеĿÕ×Ö·û´®£¬Êǿմ®²»ÊÇnull£»
¡¡¡¡3. String str=”kvill”£»
......
String s = new String("abc");
String s1 = "abc";
String s2 = new String("abc");
System.out.println(s == s1);
System.out.println(s == s2);
S ......
»ù±¾Êý¾ÝµÄÀàÐ͵ĴóСÊǹ̶¨µÄ£¬ÕâÀï¾Í²»¶à˵ÁË¡£¶ÔÓÚ·Ç»ù±¾ÀàÐ͵ÄJava¶ÔÏ󣬯ä´óС¾ÍÖµµÃÉÌȶ¡£
ÔÚJavaÖУ¬Ò»¸ö¿ÕObject¶ÔÏóµÄ´óСÊÇ8byte£¬Õâ¸ö´óСֻÊDZ£´æ¶ÑÖÐÒ»¸öûÓÐÈκÎÊôÐԵĶÔÏóµÄ´óС¡£¿´ÏÂÃæÓï¾ä£º
Object ob = new Object();
ÕâÑùÔÚ³ÌÐòÖÐÍê³ÉÁËÒ»¸öJava¶ÔÏóµÄÉúÃü£¬µ«ÊÇËüËùÕ¼µÄ ......
JavaÐéÄâ»úÖУ¬Êý¾ÝÀàÐÍ¿ÉÒÔ·ÖΪÁ½Àࣺ»ù±¾ÀàÐͺÍÒýÓÃÀàÐÍ¡£»ù±¾ÀàÐ͵ıäÁ¿±£´æÔʼֵ£¬¼´£ºËû´ú±íµÄÖµ¾ÍÊÇÊýÖµ±¾Éí£»¶øÒýÓÃÀàÐ͵ıäÁ¿±£´æÒýÓÃÖµ¡£“ÒýÓÃÖµ”´ú±íÁËij¸ö¶ÔÏóµÄÒýÓ㬶ø²»ÊǶÔÏó±¾Éí£¬¶ÔÏó±¾Éí´æ·ÅÔÚÕâ¸öÒýÓÃÖµËù±íʾµÄµØÖ·µÄλÖá£
»ù±¾ÀàÐͰüÀ¨£ºbyte, short, int, long, char, float, double ......