JavaÖеĴúÀí¼¼Êõ
JavaÖеĴúÀí¼¼Êõ
ÒÔǰ·¢¹ýÒ»±éblog½²µ½ÁË´úÀí¼¼Êõ£¬·¢ÏÖÀí½âÓÐЩ´íÎó£¬×î½üÓÐÓÖÁËЩеÄÀí½â£¬×ܽáÒ»ÏÂ
´úÀí¼¼Êõ¿ÉÒÔ·ÖΪstatic proxyºÍdynamic proxy£¬Á½ÖÖ´úÀí¼¼ÊõÓÃ;Ҳ²»Í¬
static proxy ÓõĽÏÉÙ£¬ÒòΪÿ´úÀíÒ»¸ö¶ÔÏ󣬶¼ÐèÒª´´½¨Ò»¸ö´úÀíÀ࣬ÏÔÈ»²»ÊÇÎÒÃÇËùÆÚÍûµÄ
dynamic proxyÔòÓõıȽϹ㷺£¬ÒòΪ²»ÐèÒªÉú³É´úÀíÀ࣬ÐèÒª´úÀíij¸ö¶ÔÏóʱ£¬Ö±½ÓÉú³É¼´¿É
ÏÂÃæÖ÷Òª½²Ò»ÏÂdynamic proxy
˵µ½´úÀí£¬ÎÒÃÇÓ¦¸ÃÖªµÀ´úÀí¶ÔÏóºÍ±»´úÀí¶ÔÏó
Ê×ÏÈдһ¸ö±»´úÀí¶ÔÏóµÄÀà,±»´úÀíµÄÀàÐèҪʵÏÖÒ»¸ö½Ó¿Ú£¬ÖÁÓÚΪʲô·ÇҪʵÏÖ½Ó¿Ú£¬ÒÔǰ²»Ã÷°×£¬ÏÖÔÚÓÐЩÃ÷°×£¬×Ô¼º´§Ä¦µÄ
²»ÖªµÀ¶Ô²»¶Ô
ÒòΪÎÒÃÇÔÚ´î¿ò¼ÜµÄʱºò£¬ÓÐЩʱºò²¢²»ÖªµÀÔÛÃÇÒª´úÀíʲô£¬ËùÒÔʹÓÃÒ»¸ö½Ó¿Ú£¬µ±ÒÔºóÔÛÃÇÐèÒª´úÀíij¸öÀàµÄ¶ÔÏóʱ£¬Ö»ÐèÒª
ÈÃÕâ¸öÀàʵÏÖÕâ¸ö½Ó¿Ú¾ÍºÃÁË£¬ÕâÊÇÎÒµÄÀí½â
Æä´Î£¬JavaAPIÆäʵÌṩÁË´úÀíÀ࣬Æäµ×²ãʵÏֵķ½·¨Óõ½Á˽ӿڣ¬ËùÒÔÔÛÃÇ»¹ÊÇŪһ¸ö½Ó¿Ú°É...
interface Action {
void sing();
void dance();
}
public class Person {
@Override
public void sing() {
System.out.println("singing...");
}
@Override
public void dance() {
System.out.println("dancing...");
}
}
ÕâÑùÒ»¸ö¼òµ¥µÄ±»´úÀí¶ÔÏóµÄÉú³ÉÀà¾ÍдºÃÁË£¬¾¹ýÉÏÃæµÄ½éÉÜ£¬ÎÒÃÇÖªµÀ£¬¶¯Ì¬´úÀíÊDz»ÐèÒª´´½¨´úÀíÀàµÄ£¬Ö±½ÓʹÓÃJavaAPIÖÐ
ÌṩµÄProxy´úÀíÀàÀ´»ñµÃ´úÀí¶ÔÏó
public class Demo {
public static void main(String args[]) {
//¼ÈÈ»ÊÇ´úÀí£¬ÔòÏÈnew³öÔÛÃÇÐèÒª±»´úÀíµÄ¶ÔÏó
final Action person = new Person();//ÕâÀïÊÇÓÃfinalÊÇÒòΪÏÂÃæµÄÄÚ²¿ÀàÖÐÓõ½Á˴˶ÔÏó
/*²é¿´APIÖеÄProxy´úÀíÀ࣬·¢ÏÖÓиö·½·¨newPrxoyInstance¿ÉÒÔ»ñµÃ´úÀí¶ÔÏó*/
Object proxy = Proxy.newProxyInstance(args1, args2, args3);
/*´Ë·½·¨ÓÐÈý¸ö²ÎÊý£¬Ò»Ò»½éÉÜ
ÆäʵÎÒÃÇÀ©É¢Ë¼Î¬Ò»Ï£¬Óö¯Ì¬´úÀí¼¼ÊõÎÞÐè´´½¨´úÀíÀ࣬ÄÇôÔÛÃÇͨ¹ýProxy´úÀíÀàµÄ·½·¨»ñµÃµÄ´úÀí¶ÔÏó
ÈçºÎ¸ú±»´úÀíµÄ¶ÔÏó²úÉú¹ØÁªÄØ£¿ÏÔÈ»£¬¸ú·½·¨ÖеIJÎÊýÓйØÏµ
args1£ºÕâ¸ö²ÎÊýÊÇÒ»¸öÀà¼ÓÔØÆ÷£¬ÄĸöÀàµÄ£¿»¹ÓÃ˵Â𣿵±È»ÊÇÔÛÃDZ»´úÀí¶ÔÏóµÄÄǸöÀàµÄ¼ÓÔØÆ÷ÁË£¬ÄѵÀÊǰ¢Ã¨
Ïà¹ØÎĵµ£º
ÔÎÄÁ´½Ó£ºhttp://java.csdn.net/index.php/2009/09/01/java%e5%bc%80%e5%8f%91%e8%80%85%e6%9c%80%e5%b8%b8%e5%8e%bb%e7%9a%8420%e4%b8%aa%e8%8b%b1%e6%96%87%e7%bd%91%e7%ab%99/
JAVA¿ª·¢Õß×ȥµÄ20¸öÓ¢ÎÄÍøÕ¾
1.[http://www.javaalmanac.com] – Java¿ª·¢ÕßÄê¼øÒ»ÊéµÄÔÚÏß°æ±¾. ÒªÏë¿ìËٲ鵽ijÖÖJava¼¼ÇɵÄÓ÷¨ ......
Java EE 6ÖÐ×îÒýÈËעĿµÄ¸Ä½øÒªËãWeb²ãµÄչʾÁË£¬ÕýÈçÇ°ÃæÌáµ½µÄJava EE 6µÄÒ»¸öÖØÒªÄ¿±ê¾ÍÊÇÌá¸ß¿ÉÀ©Õ¹ÐÔ£¬ÔÚ¿ÉÀ©Õ¹ÐÔ·½ÃæÁ½¸ö¹Ø¼ü¸Ä½ø·Ö±ðÊÇWeb·ÖƬºÍ¿É²å°ÎÐÔ¹²Ïí¿ò¼Ü£¬ÕâÁ½¸öÐÂÌØÐÔÊÇͨ¹ýJava EE 6ÖеÄServlet 3.0¼¼ÊõÌṩµÄ¡£Servlet 3.0£¬JSR 315¹æ·¶ÊÇServlet¼¼ÊõµÄ×îа汾£¬ËüÌṩÁËÖîÈçÖ§³ÖÒì²½´¦ ......
JavaÓëÆäËûÓïÑԵĻ¥²Ù×÷ÐÔ ÊÕ²Ø
Ŀǰ£¬ÎÒÃÇÏîÄ¿ÖÐÐèÒªÓõ½°ÑJava³ÌÐòǶÈëµ½.Net³ÌÐòÖеļ¼Êõ£¬ÎÒÃÇ×îºóËù²ÉÓõļ¼ÊõÊÇCodemesh¹«Ë¾µÄJuggerNET¡£ÕâÖÖÀàËÆµÄ¼¼ÊõºÜ¶à£¬±È½ÏÖªÃûµÄÖ÷ÒªÓÐintrinsyc¹«Ë¾µÄJIntegraÒÔ¼°IBMµÄJava COM bridge¡£
ÏîÄ¿½øÐе½ÏÖÔÚ£¬·¢ÏÖÁ˺ܶàÎÊÌ⣬Ö÷ÒªÓÐÈçϼ¸´óÀàÎÊÌ⣺
1¡¢µ¯³ö´°¿ÚÎÊÌâ
¶ÔÓ ......
×î½ü³õ²½½Ó´¥ÁËÏÂJava¼ÓÃܺÍÊý×ÖÇ©ÃûµÄÏà¹ØÄÚÈÝ£¬ÎÒѧϰµÄ¹ý³Ì´ó¸Å·ÖÎå²½£º
1£©ÏûÏ¢ÕªÒª
2£©Ë½Ô¿¼ÓÃÜ
3£©¹«Ô¿¼ÓÃÜ
4£©Êý×ÖÇ©Ãû
5£©Êý×ÖÖ¤Êé
ÏÂÃæµÄ´úÂëÊǵÚËIJ¿·Ö£ºÊý×ÖÇ©Ãû
Ï£ÍûÄÜΪ¸Õ¸Õ½Ó´¥Õâ¸öµÄÅóÓÑÃÇÊ¡µãÊ package security;
import java.security.Signature;
import java.security.KeyPairGenerator ......
ÓÃÃüÁî whereis java¾Í¿ÉÒÔ¿´µ½ÁË
eg:
-bash-3.1$ whereis java
java: /usr/bin/java /etc/java /usr/lib/java /usr/share/java /opt/jdk1.6.0_01/bin/java
Èç¹û½ö½öÏëÖªµÀjavaÖ´Ðз¾¶ÔÚÄÇÀïµÄ»° ÓÃwhich java¾Í¿ÉÒÔÁË
eg:
-bash-3.1$ which java
/usr/bin/java ......