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¡£ÕâËÄÖÖÀà¼ÓÔØÆ÷·Ö±ð¸ºÔð²»Í¬Â·¾¶µÄÀàµÄ¼ÓÔØ£¬²¢ÐγÉÁËÒ»¸öÀà¼ÓÔصIJã´Î½á¹¹¡£
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·´Éä»úÖÆ
JAVA·´Éä»úÖÆÊÇÔÚÔËÐÐ״̬ÖУ¬¶ÔÓÚÈÎÒâÒ»¸öÀ࣬¶¼Äܹ»ÖªµÀÕâ¸öÀàµÄËùÓÐÊôÐԺͷ½·¨£»¶ÔÓÚÈÎÒâÒ»¸ö¶ÔÏ󣬶¼Äܹ»µ÷ÓÃËüµÄÈÎÒâÒ»¸ö·½·¨£»ÕâÖÖ¶¯Ì¬»ñÈ¡µÄÐÅÏ¢ÒÔ¼°¶¯Ì¬µ÷ÓöÔÏóµÄ·½·¨µÄ¹¦ÄܳÆΪjavaÓïÑԵķ´Éä»úÖÆ¡£
Java·´Éä»úÖÆÖ÷ÒªÌṩÁËÒÔϹ¦ÄÜ£º ÔÚÔËÐÐʱÅжÏÈÎÒâÒ»¸ö¶ÔÏóËùÊô ......
4¡¢ TimerºÍTimerTaskµÄʹÓÃ
TimerÊÇÒ»ÖÖ¶¨Ê±Æ÷¹¤¾ß£¬ÓÃÀ´ÔÚÒ»¸öºǫ́Ï̼߳ƻ®Ö´ÐÐÖ¸¶¨ÈÎÎñ£¬ÕâЩÈÎÎñ¿ÉÒÔ±»Ö´ÐÐÒ»´Î£¬Ò²¿ÉÒÔ±»¶¨ÆÚÖ´ÐС£Ã¿¸ö Timer ¶ÔÏó¶ÔÓ¦Ò»¸öºǫ́Ị̈߳¬Ë³ÐòµØÖ´ÐÐËùÓмÆʱÆ÷ÈÎÎñ¡£Èç¹ûÍê³Éij¸ö¼ÆʱÆ÷ÈÎÎñµÄʱ¼äÌ«³¤£¬ÄÇôËü»á“¶ÀÕ¼”¼ÆʱÆ÷µÄÈ ......
¹Ø¼üÓï¾ä£º
conn.setAutoCommit(false);
if(!ok) conn.rollBack();
// after all done
conn.commit();
conn.setAutoCommit(true);
ǧÍò±ðÍü¼ÇÒª¼Óconn.commit()·ñÔò²»»áÖ´ÐÐÊÂÎñµÄ¡£
ÁíÍ⣬M ......
È«ÆÁ¶Àռģʽ
¾³£Ê¹ÓÃDirectX APIµÄ³ÌÐòÔ±¿ÉÄܶÔÈ«ÆÁ¶ÀռģʽÒѾºÜÊìϤÁË ¡£ËüÔÊÐí³ÌÐòԱͨ¹ýÐü¹Ò²Ù×÷ϵͳÀ´Ö±½ÓÔÚÆÁÄ»ÉϽøÐлæÖÆ¡£ÔÚ´«Í³µÄJava GUI ³ÌÐòÖУ¬ AWT ͨ¹ýʼþ·ÖÅÉÏ̺߳ÍÔÚÊʵ±µÄʱºòµ÷ÓÃ×é¼þµÄpaint()·½·¨À´´«ËÍÀ´×Ô²Ù×÷ϵͳµÄpaintʼþ¡£ÔÚÈ«ÆÁ¶ÀռģʽӦÓÃÖÐÄã¿ÉÒÔͨ¹ý³ÌÐò½øÐлæÖÆ¡£ ÁíÍâ ......