JAVA¶¯Ì¬´úÀíÄÚ²¿ÊµÏÖ
Ò»¡¡´úÀíÉè¼ÆÄ£Ê½
´úÀíģʽΪĿ±ê¶ÔÏóÌṩһÖÖ´úÀíÒÔ¿ØÖƶÔʵ¼Ê¶ÔÏóµÄ·ÃÎÊ¡£ÔÚijЩÇé¿öÏ£¬Ò»¸ö¿Í»§²»Ïë»òÕß²»ÄÜÖ±½ÓÒýÓÃÁíÒ»¸ö¶ÔÏ󣬶ø´úÀí¶ÔÏó¿ÉÒÔÔÚ¿Í»§¶ËºÍÄ¿±ê¶ÔÏóÖ®¼äÆðµ½ÖнéµÄ×÷Óá£
ΪÁ˱£³ÖÐÐΪµÄÒ»ÖÂÐÔ£¬´úÀíÀàºÍʵ¼ÊίÍÐÀàͨ³£»áʵÏÖÏàͬµÄ½Ó¿Ú£¬ËùÒÔÔÚ·ÃÎÊÕß¿´À´Á½ÕßûÓÐË¿ºÁµÄÇø±ð¡£
¡¡´úÀíģʽÀàͼ¡¡¡¡
³£¼ûµÄ´úÀíÓÐ:
1) Ô¶³Ì´úÀí(Remote proxy)£º¶ÔÒ»¸öλÓÚ²»Í¬µÄµØÖ·¿Õ¼ä¶ÔÏóÌṩһ¸ö¾ÖÓò´ú±í¶ÔÏó£¬ÈçRMIÖеÄstub¡£¡¡
2) ÐéÄâ´úÀí(Virtual proxy)£º¸ù¾ÝÐèÒª½«Ò»¸ö×ÊÔ´ÏûºÄºÜ´ó»òÕ߱Ƚϸ´ÔӵĶÔÏó£¬ÑÓ³Ù¼ÓÔØ£¬ÔÚÕæÕýÐèÒªµÄʱºò²Å´´½¨¡£
3) ±£»¤´úÀí(Protect or Access Proxy)£º¿ØÖƶÔÒ»¸ö¶ÔÏóµÄ·ÃÎÊȨÏÞ¡£
4) ÖÇÄÜÒýÓÃ(Smart Reference Proxy)£ºÌṩ±ÈÄ¿±ê¶ÔÏó¶îÍâµÄ·þÎñºÍ¹¦ÄÜ¡£
ͨ¹ý´úÀíÀàÕâÒ»Öмä²ã£¬Äܹ»ÓÐЧ¿ØÖƶÔʵ¼ÊίÍÐÀà¶ÔÏóµÄÖ±½Ó·ÃÎÊ£¬Ò²¿ÉÒԺܺõØÒþ²ØºÍ±£»¤Êµ¼Ê¶Ô£¬ÊµÊ©²»Í¬µÄ¿ØÖƲßÂÔ£¬´Ó¶øÔÚÉè¼ÆÉÏ»ñµÃÁ˸ü´óµÄÁé»îÐÔ¡£
¶þ¡¡¶¯Ì¬´úÀíʹÓÃ
JAVA¶¯Ì¬´úÀí»úÖÆÒÔÇÉÃîµÄ·½Ê½ÊµÏÖÁË´úÀíģʽµÄÉè¼ÆÀíÄî¡£
¶¯Ì¬´úÀíÀàͼ
¶¯Ì¬´úÀíÔÚ´úÀíProxySubjectºÍRealSubjectÖ®¼äÔö¼ÓÁËInvocationHandler£ ......
ÏîÄ¿¾ÀíµÄÖ°Ôð£º
1¡¢»ù±¾Ö°Ôð¾ÍÊÇÈ·±£ÏîĿĿ±êµÄʵÏÖ£¬Áìµ¼ÏîÄ¿ÍŶÓ׼ʱ¡¢ÓÅÖʵØÍê³ÉÈ«²¿¹¤×÷¡£
2¡¢Óë¿Í»§¹µÍ¨£¬Á˽âÏîÄ¿µÄÕûÌåÐèÇó¡£²¢Óë¿Í»§±£³ÖÒ»¶¨µÄÁªÏµ£¬¼°Ê±·´À¡½×¶ÎÐԳɹû£¬¼°Ê±¸ü¸Ä¿Í»§Ìá³öµÄºÏÀíÐèÇó¡£
3¡¢Öƶ¨ÏîÄ¿¿ª·¢¼Æ»®Îĵµ£¬Á¿»¯ÈÎÎñ£¬²¢ºÏÀí·ÖÅ䏸Ïà¹ØÈËÔ±¡£
4¡¢¸ú×ÙÏîÄ¿½ø¶È£¬Ðµ÷ÏîÄ¿×é³ÉÔ±Ö®¼äµÄºÏ×÷¡£
5¡¢¼à¶½Éú²úÏîÄ¿½øÕ¹¸÷½×¶ÎµÄÎĵµ£¬²¢ÓëQA¼°Ê±¹µÍ¨£¬±£Ö¤ÎĵµÖÊÁ¿ºÍ¹æ·¶¡£
6¡¢¿ª·¢¹ý³ÌÖеÄÐèÇó±ä¸ü£¬ÏîÄ¿¾ÀíÐèÒª¸ú¿Í»§Á˽âÐèÇó£¬ÔÚÎÞ·¨ÅжϵÄÐèÇó¶ÔÏîÄ¿µÄÕûÌåÓ°Ïì³Ì¶ÈµÄÇé¿öÏ£¬ÐèÒªÓëÏîÄ¿×é³ÉÔ±ÉÌÁ¿£¬×îºó¾ö¶¨ÊÇ·ñ½ÓÊܿͻ§µÄÐèÇó£¬È»ºóÔÙ¸ú¿Í»§ÐÉÌ¡£È·¶¨Òª±ä¸üÐèÇóµÄÇé¿öÏ£¬Ðè²úÉú±ä¸üÎĵµ£¬¸ü¸Ä¿ª·¢¼Æ»®£¬Í¨ÖªQA¡£
7¡¢ÏîÄ¿Ìá½»²âÊÔºó£¬ÏîÄ¿¾ÀíÐèÁ˽â²âÊÔ½á¹û£¬¸ù¾Ý²âÊÔbugµÄÑÏÖØ¶ÈÀ´ÖØÐ¸ü¸Ä¿ª·¢¼Æ»®¡£
8¡¢ÏòÉϼ¶»ã±¨¡£ÏòÉϼ¶»ã±¨ÏîÄ¿µÄ½øÕ¹Çé¿ö£¬ÐèÇó±ä¸üµÈËùÓÐÏîÄ¿ÐÅÏ¢¡£
9¡¢ÏîÄ¿Íê³ÉʱÐè½øÐÐÏîÄ¿×ܽᣬ²úÉúÏîÄ¿×ܽáÎĵµ¡£
ÏîÄ¿¾ÀíµÄȨÀû£º
1¡¢¿ª·¢Ö¸»ÓȨ¡£ÏîÄ¿¿ª·¢ÈËÔ±µÄ·ÖÅäºÍµ÷Õû¡£
2¡¢¼¼Êõ¾ö²ßȨ¡£Ö÷ÒªÊÇÉó²éºÍÅú×¼ÖØ´ó¼¼Êõ´ëÊ©ºÍ¼¼Êõ·½°¸£¬ÒÔ·À¾ö²ßʧÎó£¬Ôì³ÉÖØ´óËðʧ¡£
3¡¢ÉêÇëÐ×÷Ȩ¡£ÏîÄ¿·¢Õ¹³öÏÖ²»Äܽâ¾öµÄÎÊÌâʱºò£ ......
String newStr = new String(oldStr.getBytes(), "UTF-8");
javaÖеÄStringÀàÊǰ´ÕÕunicode½øÐбàÂëµÄ£¬µ±Ê¹ÓÃString(byte[] bytes, String encoding)¹¹Ôì×Ö·û´®Ê±£¬encodingËùÖ¸µÄÊÇbytesÖеÄÊý¾ÝÊǰ´ÕÕÄÇÖÖ·½Ê½±àÂëµÄ£¬¶ø²»ÊÇ×îºó²úÉúµÄStringÊÇʲô±àÂ뷽ʽ£¬»»¾ä»°Ëµ£¬ÊÇÈÃϵͳ°ÑbytesÖеÄÊý¾ÝÓÉencoding±àÂ뷽ʽת»»³Éunicode±àÂë¡£Èç¹û²»Ö¸Ã÷£¬bytesµÄ±àÂ뷽ʽ½«ÓÉjdk¸ù¾Ý²Ù×÷ϵͳ¾ö¶¨¡£
µ±ÎÒÃÇ´ÓÎļþÖжÁÊý¾Ýʱ£¬×îºÃʹÓÃInputStream·½Ê½£¬È»ºó²ÉÓÃString(byte[] bytes, String encoding)Ö¸Ã÷ÎļþµÄ±àÂ뷽ʽ¡£²»ÒªÊ¹ÓÃReader·½Ê½£¬ÒòΪReader·½Ê½»á×Ô¶¯¸ù¾ÝjdkÖ¸Ã÷µÄ±àÂ뷽ʽ°ÑÎļþÄÚÈÝת»»³Éunicode ±àÂë¡£
µ±ÎÒÃÇ´ÓÊý¾Ý¿âÖжÁÎı¾Êý¾Ýʱ£¬²ÉÓÃResultSet.getBytes()·½·¨È¡µÃ×Ö½ÚÊý×飬ͬÑù²ÉÓôø±àÂ뷽ʽµÄ×Ö·û´®¹¹Ôì·½·¨¼´¿É¡£
ResultSet rs;
bytep[] bytes = rs.getBytes();
String str = new ......
±¾ÖÜÓöµ½Ò»¸öjavaÂÒÂëÎÊÌ⣬ÓÚÊǶÔjavaµÄ±àÂëÎÊÌâ×öÁËһЩʵÑéºÍÁ˽⡣¼òµ¥·ÖÎöÈçÏ£º
ÏÈ¿´ÏÂÈçÏ´úÂ룺
import
java.io.UnsupportedEncodingException;
public
class
CharSetTest {
public
static
void
main(String[] args)
throws
UnsupportedEncodingException {
String test =
"
ÀºÇò
"
;
byte
[]
defaultResult = test.getBytes();
for
(
byte
e : defaultResult) {
System.
out
.print(e
+
" "
);
}
System.
out
.println(System.
getProperty
(
"file.encoding"
));
System.
out
.println(
"test="
+ test);
}
}
1.Ö´ÐÐ javac CharSetTest.java,ÄÜÕý³£±àÒ룬µ«Êǵõ½ÈçϾ¯¸æ£º
CharSetTest.java:5: warning: unmappable character
for encoding ASCII
String test = "????";
·ÖÎöÒ»ÏÂΪʲô»áÕâÑùÄØ£¿¶ÔÓÚjava±àÒëÆ÷À´Ëµ£¬CharSetTest.java¾ÍÊÇÒ»¸öÎı¾Îļþ£¬java±àÒëÆ÷Òª½âÎö
Õâ¸öÎı¾Îļþ²¢±àÒëÉú³É.classÎļþ¡£·ÖÎöÁËÏÂÔÒò´ó¸ÅÊÇÕâÑùµÄ£ºCharSetTest.javaÒ»¶¨ÊÇÒÔijһÖÖ±àÂë¸ñʽÀ´´æ´¢µÄ£¬ ......
1.2 ¹¤³§·½·¨£¨Factory Method£©Ä£Ê½
¹¤³§·½·¨Ä£Ê½ÊÇÀàµÄ´´½¨Ä£Ê½£¬ÓÖ½ÐÐéÄâ¹¹Ôì×Ó£¨Virtual Constructor£©Ä£Ê½»òÕß¶à̬ÐÔ¹¤³§£¨Polymorphic Factory£©Ä£Ê½¡£
¹¤³§·½·¨Ä£Ê½µÄÓÃÒâÊǶ¨ÒåÒ»¸ö´´½¨²úÆ·¶ÔÏóµÄ¹¤³§½Ó¿Ú£¬½«Êµ¼Ê¹¤×÷ÍÆ³Ùµ½×ÓÀàÖС£
1.2.1 ¹¤³§·½·¨Ä£Ê½µÄÒý½ø
¹¤³§·½·¨Ä£Ê½ÊǼòµ¥¹¤³§Ä£Ê½µÄ½øÒ»²½³éÏóºÍÍÆ¹ã¡£ÓÉÓÚʹÓÃÁ˶à̬ÐÔ£¬¹¤³§·½·¨Ä£Ê½±£³ÖÁ˼òµ¥¹¤³§Ä£Ê½µÄÓŵ㣬¶øÇÒ¿Ë·þÁËËüµÄȱµã¡£ÏÂÃæÊǹ¤³§·½·¨Ä£Ê½µÄËõÂÔÀàͼ£º
ÔÚ¹¤³§·½·¨Ä£Ê½ÖУ¬ºËÐĵŤ³§À಻ÔÙ¸ºÔðËùÓвúÆ·µÄ´´½¨£¬¶øÊǽ«¾ßÌå´´½¨µÄ¹¤×÷½»¸ø×ÓÀàÈ¥×ö¡£Õâ¸öºËÐŤ³§Ôò±äΪ³éÏ󹤳§½ÇÉ«£¬½ö¸ºÔð¸ø³ö¾ß¹¤³§×ÓÀà±ØÐëʵÏֵĽӿڣ¬¶ø²»½Ó´¥ÄÄÒ»²úÆ·´´½¨µÄϸ½Ú¡£
ÕâÖÖ³éÏóµÄ½á¹û£¬Ê¹ÕâÖÖ¹¤³§·½·¨Ä£Ê½¿ÉÒÔÓÃÀ´ÔÊÐíϵͳ²»Ð޸ľßÌ幤³§½ÇÉ«µÄÇé¿öÏÂÒý½øÐ²úÆ·£¬ÕâÒ»ÌØµãÎÞÒÉʹµÃ¹¤³§Ä£Ê½¾ßÓг¬¹ý¼òµ¥¹¤³§Ä£Ê½µÄÓÅÔ½ÐÔ¡£
1.2.2 ¹¤³§·½·¨Ä£Ê½µÄ½á¹¹
ÔÚ¹¤³§·½·¨Ä£Ê½ÖУ¬Ò»°ã¶¼ÓÐÒ»¸öƽÐеĵȼ¶½á¹¹£¬Ò²¾ÍÊÇ˵¹¤³§ºÍ²úÆ·ÊǶÔÓ¦µÄµ ......
Ò»¡¢ÅäÖû·¾³±äÁ¿:
ÎҵĵçÄÔ->ÊôÐÔ->¸ß¼¶->»·¾³±äÁ¿->ϵͳ±äÁ¿ÖÐÌí¼ÓÒÔÏ»·¾³±äÁ¿£º
JAVA_HOME=D:\Program Files\Java\jdk1.6.0_20
JavaµÄ°²×°Ä¿Â¼£¬µ±Java°²×°Ä¿Â¼¸Ä±äʱֻÐè¸Ä±ä´Ë±äÁ¿¼´¿É£¬×öµ½Ò»¸ÄÈ«¸Ä£¬Í¬Ê±µÚÈý·½Èí¼þ»áÒýÓÃÔ¼¶¨ºÃµÄJAVA_HOME±äÁ¿£¬²»È»£¬Äã²»ÄÜÕý³£Ê¹ÓøÃÈí¼þ
PATH=..........;%JAVA_HOME%\bin
ʹµÃÎÒÃÇÄܹ»ÔÚϵͳÖеÄÈκεط½ÔËÐÐjavaÓ¦ÓóÌÐò£¬±ÈÈçjavac¡¢java¡¢javahµÈµÈ£¬..........ΪϵͳµÄÆäËû±äÁ¿ÅäÖÃ
CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
µ±ÎÒÃÇÔÚ¿ª·¢java³ÌÐòʱÐèÒªÒýÓñðÈËдºÃµÄÀàʱ£¬ÒªÈÃjava½âÊÍÆ÷ÖªµÀµ½ÄÄÀïÈ¥ÕÒÕâ¸öÀࡣͨ³££¬sunΪÎÒÃÇÌṩÁËһЩ¶îÍâµÄ·á¸»µÄÀà°ü£¬Ò»¸öÊÇdt.jar£¬Ò»¸öÊÇtools.jar£¬ÕâÁ½¸öjar°ü¶¼Î»ÓÚD:\Program Files\Java\jdk1.6.0_20\libĿ¼ÏÂ.´ú±íµ±Ç°Ä¿Â¼£¬Ö´ÐÐʱÊ×ÏÈ´Óµ±Ç°Ä¿Â¼ÖÐѰÕÒÏà¹ØµÄÀ࣬ÈôûÓÐÔòÔÙ´ÓJavaµÄ°²×°Ä¿Â¼ÖÐѰÕÒÏà¹ØµÄÀà
ÈôûÓÐÉèÖÃJAVA_HOME±äÁ¿£¬Ôò½«%JAVA_HOME%¸ü¸ÄΪD:\Program Files\Java\jdk1.6.0_20¼´¿É£¨²»ÍƼöʹÓã©¡£
¶þ¡¢×¢Òâµã£º
1£¬PATH,CLASSPATHµÈ ´óСд¶¼ÎÞËùν (ÓÐЩÈË¿ÉÄÜ»áÔÚÕâ¸öÉÏÃæ¾À²øºÜ¾Ã)
2£¬»·¾³±äÁ¿ÓÐϵͳ±äÁ¿ºÍÓ ......