Java ÀàµÄÈÈÌæ»» —— ¸ÅÄî¡¢Éè¼ÆÓëʵÏÖ
http://www.ibm.com/developerworks/cn/java/j-lo-hotswapcls/index.html
Java ÀàµÄÈÈÌæ»» —— ¸ÅÄî¡¢Éè¼ÆÓëʵÏÖ
¹¹½¨»ùÓÚ Java µÄÔÚÏßÉý¼¶ÏµÍ³
¼¶±ð£º Öм¶
Ëï Ãù
,
µË »Ô
,
2010 Äê 1 ÔÂ 14 ÈÕ
¶Ô
ÓÚÐí¶à¹Ø¼üÐÔÒµÎñ»òÕßÅÓ´óµÄ Java
ϵͳÀ´Ëµ£¬Èç¹û±ØÐëÔÝͣϵͳ·þÎñ²ÅÄܽøÐÐϵͳÉý¼¶£¬¼È»á´ó´óÓ°Ï쵽ϵͳµÄ¿ÉÓÃÐÔ£¬Í¬Ê±Ò²Ôö¼ÓÁËϵͳµÄ¹ÜÀíºÍά»¤³É±¾¡£Òò´Ë£¬Èç¹ûÄܹ»·½±ãµØÔÚ²»Í£Ö¹ÏµÍ³Òµ
ÎñµÄÇé¿öϽøÐÐϵͳÉý¼¶£¬Ôò¿ÉÒԺܺõؽâ¾öÉÏÊöÎÊÌâ¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃǽ«»ùÓÚʵÀý£¬¶Ô¹¹½¨ÔÚÏßÉý¼¶ Java
ϵͳµÄ»ù´¡¼¼ÊõºÍÉè¼ÆÔÔò½øÐÐÁËÉîÈëµÄ½²½â¡£ÏàÐŶÁÕßÄܹ»¸ù¾ÝÎÄÖеļ¼Êõ¹¹½¨³ö×Ô¼ºµÄÔÚÏßÉý¼¶ÏµÍ³À´¡£
Java ClassLoader ¼¼ÊõÆÊÎö
ÔÚ±¾ÎÄÖУ¬ÎÒÃǽ«²»¶Ô Java ClassLoader µÄϸ½Ú½øÐйýÓÚÏêϸµÄ½²½â£¬¶øÊǹØ×¢Óں͹¹½¨ÔÚÏßÉý¼¶ÏµÍ³Ïà¹ØµÄ»ù´¡¸ÅÄî¡£¹ØÓÚ ClassLoader µÄÏêϸϸ½ÚÐí¶à×ÊÁÏ¿ÉÒԲο¼£¬ÓÐÐËȤµÄ¶ÁÕß¿ÉÒÔ×ÔÐÐÑжÁ¡£
Òª¹¹½¨ÔÚÏßÉý¼¶ÏµÍ³£¬Ò»¸öÖØÒªµÄ¼¼Êõ¾ÍÊÇÄܹ»ÊµÏÖ Java ÀàµÄÈÈÌæ»» —— Ò²¾ÍÊÇÔÚ²»Í£Ö¹ÕýÔÚÔËÐеÄϵͳµÄÇé¿öϽøÐÐÀࣨ¶ÔÏ󣩵ÄÉý¼¶Ìæ»»¡£¶ø Java µÄ ClassLoader ÕýÊÇʵÏÖÕâÏî¼¼ÊõµÄ»ù´¡¡£
ÔÚ
Java ÖУ¬ÀàµÄʵÀý»¯Á÷³Ì·ÖΪÁ½¸ö²¿·Ö£ºÀàµÄ¼ÓÔØºÍÀàµÄʵÀý»¯¡£ÀàµÄ¼ÓÔØÓÖ·ÖΪÏÔʽ¼ÓÔØºÍÒþʽ¼ÓÔØ¡£´ó¼ÒʹÓà new
¹Ø¼ü×Ö´´½¨ÀàʵÀýʱ£¬Æäʵ¾ÍÒþʽµØ°üº¬ÁËÀàµÄ¼ÓÔØ¹ý³Ì¡£¶ÔÓÚÀàµÄÏÔʽ¼ÓÔØÀ´Ëµ£¬±È½Ï³£ÓõÄÊÇ Class.forName¡£Æäʵ£¬ËüÃǶ¼ÊÇͨ¹ýµ÷ÓÃ
ClassLoader ÀàµÄ loadClass ·½·¨À´Íê³ÉÀàµÄʵ¼Ê¼ÓÔØ¹¤×÷µÄ¡£Ö±½Óµ÷Óà ClassLoader µÄ loadClass
·½·¨ÊÇÁíÍâÒ»ÖÖ²»³£ÓõÄÏÔʽ¼ÓÔØÀàµÄ¼¼Êõ¡£
ͼ 1. Java Àà¼ÓÔØÆ÷²ã´Î½á¹¹Í¼
ClassLoader
ÔÚ¼ÓÔØÀàʱÓÐÒ»¶¨µÄ²ã´Î¹ØÏµºÍ¹æÔò¡£ÔÚ Java
ÖУ¬ÓÐËÄÖÖÀàÐ͵ÄÀà¼ÓÔØÆ÷£¬·Ö±ðΪ£ºBootStrapClassLoader¡¢ExtClassLoader¡¢AppClassLoader
ÒÔ¼°Óû§×Ô¶¨ÒåµÄ ClassLoader¡£ÕâËÄÖÖÀà¼ÓÔØÆ÷·Ö±ð¸ºÔð²»Í¬Â·¾¶µÄÀàµÄ¼ÓÔØ£¬²¢ÐγÉÁËÒ»¸öÀà¼ÓÔØµÄ²ã´Î½á¹¹¡£
BootStrapClassLoader
´¦ÓÚÀà¼ÓÔØÆ÷²ã´Î½á¹¹µÄ×î¸ß²ã£¬¸ºÔð sun.boot.class.path ·¾¶ÏÂÀàµÄ¼ÓÔØ£¬Ä¬ÈÏΪ jre/lib Ŀ¼ÏµĺËÐÄ API »ò
-Xbootclasspath Ñ¡ÏîÖ¸¶¨µÄ jar °ü¡£ExtClassLoader µÄ¼ÓÔØÂ·¾¶Îª java.ext.dirs£¬Ä¬ÈÏΪ
jre/lib/ext Ŀ¼»òÕß -Djava.ext.dirs Ö¸¶¨Ä¿Â¼Ï嵀 jar °ü¼ÓÔØ¡£AppClassLoader µÄ¼ÓÔØÂ·¾¶Îª
java.class.path£¬Ä¬ÈÏΪ»·¾³±äÁ¿ CLASS
Ïà¹ØÎĵµ£º
ÒýÑÔ
ÓÐJAVA¿ª·¢¾ÑéµÄÅóÓÑÃÇÒ»¶¨Åöµ½¹ýÏÂÃæµÄÕâÖÖÇé¿ö,ÄǾÍÊÇ×Ô¼ºËù¿ª·¢µÄÓ¦ÓÃÔËÐÐÁËÒ»¶Îʱ¼äºóÆäÐÔÄÜ»ò ÕßÏìÓ¦ËÙ¶È»áÓÐÃ÷ÏԵĽµµÍ.ÕâÊÇÓÉ¶à·½ÃæµÄÔÒòÔì³ÉµÄ¼´ÓгÌÐò±¾ÉíµÄÓÅ»¯ÎÊÌâ,Ò²ÓÐÔËÐл·¾³ÎÊÌâ.´ËÔËÐл·¾³¼´°üÀ¨Ó²¼þ»·¾³Ò²°üÀ¨Èí¼þ»·¾³.´ó¶àÊýÈ˵ÚÒ» ¸öÄÜÏëµ½µÄ½â¾ö·½·¨ÊÇÌáÉýÓ²¼þµÄÅäÖöøºöÂÔÁ˳ÌÐò±¾ÉíµÄÔËÐл·¾ ......
¡¡¡¡ÃÀ¹ú¾É½ðɽʱ¼ä2005Äê6ÔÂ28ÈÕÉÏÎ磬ÔÚÓÉÈ«Çò10000¶àÃû¿ª·¢ÈËÔ±³öϯµÄ“2005 Java One¿ª·¢Õß´ó»á&r ......
javaÖеÄSynthÍâ¹Û
Synth£¬ËüÊÇÒ»¸öÍêÕûµÄÍâ¹Û£¬¶ø²»ÊÇÒ»¸öÖ÷Ì⣬ËüÕë¶ÔµÄ²¢²»ÊdzÌÐòÔ±£¬¶øÊǽçÃæÉè¼ÆÈËÔ±£¬ÈÃËûÃDz»±ØÕÆÎÕJava ֪ʶ±ãÄܹ»½øÐÐÏàÓ¦½çÃæµÄÑ¡Ôñ¶¨ÖÆ¡£²ÉÓÃÁËSynth ºó£¬ÎÒÃDz»ÄÜ´ÓÏÖÓÐÍâ¹Û»òÖ÷ÌâÅÉÉú×ÓÀà¡¢ÐÞ¸Ä×ÖÌå»òÑÕÉ«£¬¶øÊÇͨ¹ý×ªÔØ²»Í¬µÄXML ÎļþÒÔ´ïµ½¶Ô ......
¹Ø¼üÓï¾ä£º
conn.setAutoCommit(false);
if(!ok) conn.rollBack();
// after all done
conn.commit();
conn.setAutoCommit(true);
ǧÍò±ðÍü¼ÇÒª¼Óconn.commit()·ñÔò²»»áÖ´ÐÐÊÂÎñµÄ¡£
ÁíÍ⣬M ......
public class Calendar {
/**
* Ö±½ÓµÄ¿ÉÒԲ鿴Ч¹û
* @param args
*/
public static void main(String[] args) {
int year=input.nextInt();//Äê
int month=input.nextInt();//ÔÂ
int yearday=0;//Äê×ÜÌìÊý
//¼ ......