Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

ÉîÈëÁ˽âJava ClassLoader¡¢Bytecode ¡¢ASM¡¢cglib

Ò»¡¢Java ClassLoader
1£¬Ê²Ã´ÊÇClassLoader
Óë C »ò C++ ±àдµÄ³ÌÐò²»Í¬£¬Java ³ÌÐò²¢²»ÊÇÒ»¸ö¿ÉÖ´ÐÐÎļþ£¬¶øÊÇÓÉÐí¶à¶ÀÁ¢µÄÀàÎļþ×é³É£¬Ã¿Ò»¸öÎļþ¶ÔÓ¦ÓÚÒ»¸ö Java Àà¡£
´ËÍ⣬ÕâЩÀàÎļþ²¢·ÇÁ¢¼´È«²¿¶¼×°ÈëÄڴ棬¶øÊǸù¾Ý³ÌÐòÐèҪװÈëÄÚ´æ¡£ClassLoader ÊÇ JVM Öн«Àà×°ÈëÄÚ´æµÄÄDz¿·Ö¡£
¶øÇÒ£¬Java ClassLoader ¾ÍÊÇÓà Java ÓïÑÔ±àдµÄ¡£ÕâÒâζ×Å´´½¨Äú×Ô¼ºµÄ ClassLoader ·Ç³£ÈÝÒ×£¬²»±ØÁ˽â JVM µÄ΢Сϸ½Ú¡£
2£¬Ò»Ð©ÖØÒªµÄ·½·¨
A)loadClass
ClassLoader.loadClass() ÊÇClassLoaderµÄÈë¿Úµã¡£¸Ã·½·¨µÄ¶¨ÒåΪ£ºClass loadClass( String name, boolean resolve );
name£ºJVM ÐèÒªµÄÀàµÄÃû³Æ£¬Èç Foo »ò java.lang.Object¡£
resolve£º²ÎÊý¸æËß·½·¨ÊÇ·ñÐèÒª½âÎöÀà¡£
B)defineClass
defineClass·½·¨ÊÇClassLoaderµÄÖ÷Òª¾÷ÇÏ¡£¸Ã·½·¨½ÓÊÜÓÉԭʼ×Ö½Ú×é³ÉµÄÊý×é²¢°ÑËüת»»³ÉClass¶ÔÏó¡£
C)findSystemClass
findSystemClass·½·¨´Ó±¾µØÎļþϵͳÖÐѰÕÒÀàÎļþ£¬Èç¹û´æÔÚ£¬¾ÍʹÓÃdefineClass½«Ô­Ê¼×Ö½Úת»»³ÉClass¶ÔÏó£¬ÒÔ½«¸ÃÎļþת»»³ÉÀà¡£
D)resolveClass
¿ÉÒÔ²»ÍêÈ«µØ(²»´ø½âÎö)×°ÈëÀ࣬Ҳ¿ÉÒÔÍêÈ«µØ(´ø½âÎö)×°ÈëÀà¡£µ±±àдÎÒÃÇ×Ô¼ºµÄloadClassʱ¿ÉÒÔµ÷ÓÃresolveClass£¬ÕâÈ¡¾öÓÚloadClassµÄresolve²ÎÊýµÄÖµ¡£
E)findLoadedClass
findLoadedClass³äµ±Ò»¸ö»º´æ£ºµ±ÇëÇóloadClass×°ÈëÀàʱ£¬Ëüµ÷Óø÷½·¨À´²é¿´ClassLoaderÊÇ·ñÒÑ×°ÈëÕâ¸öÀ࣬ÕâÑù¿ÉÒÔ±ÜÃâÖØÐÂ×°ÈëÒÑ´æÔÚÀàËùÔì³ÉµÄÂé·³¡£
3£¬Java2ÖÐClassLoaderµÄ±ä¶¯
1)loadClassµÄȱʡʵÏÖ
ÔÚJava2ÖÐloadClassµÄʵÏÖǶÈëÁË´ó¶àÊý²éÕÒÀàµÄÒ»°ã·½·¨£¬²¢Ê¹Äúͨ¹ý¸²¸ÇfindClass·½·¨À´¶¨ÖÆËü£¬ÔÚÊʵ±µÄʱºòfindClass»áµ÷ÓÃloadClass¡£
ÕâÖÖ·½Ê½µÄºÃ´¦ÊÇ¿ÉÄܲ»Ò»¶¨Òª¸²¸ÇloadClass£¬Ö»Òª¸²¸ÇfindClass¾ÍÐÐÁË£¬Õâ¼õÉÙÁ˹¤×÷Á¿¡£
2)з½·¨:findClass
loadClassµÄȱʡʵÏÖµ÷ÓÃÕâ¸öз½·¨¡£
3)з½·¨:getSystemClassLoader
Èç¹û¸²¸ÇfindClass»òloadClass£¬getSystemClassLoaderÈÃÎÒÃÇÒÔʵ¼ÊClassLoader¶ÔÏóÀ´·ÃÎÊϵͳClassLoader£¬¶ø²»Êǹ̶¨µÄ´ÓfindSystemClass µ÷ÓÃËü¡£
4)з½·¨:getParent
ΪÁ˽«ÀàÇëÇóίÍиø¸¸ClassLoader£¬Õâ¸öз½·¨ÔÊÐíClassLoader»ñÈ¡ËüµÄ¸¸ClassLoader¡£
4£¬¶¨ÖÆClassLoader
ÆäʵÎÒÃÇ»ò¶à»òÉÙ¶¼Ê¹Óùý¶¨ÖƵÄClassLoader£¬ÒòΪApplet²é¿´Æ÷ÖоͰüº¬Ò»¸ö¶¨ÖƵÄClassLoader¡£
Ëü²»ÔÚ±¾µØÎļþϵͳÖÐѰÕÒÀ࣬¶øÊÇ·ÃÎÊÔ¶³Ì·þÎñÆ÷ÉϵÄ


Ïà¹ØÎĵµ£º

¡¾×ª¡¿ JavaÉè¼ÆÄ£Ê½Ö®×ÛÊöƪ

JavaÉè¼ÆÄ£Ê½Ö®×ÛÊöƪ
http://tech.it168.com/a2009/0223/266/000000266380.shtml
×Ô´ÓJ2EE³öÏÖÒÔÀ´£¬¾Í´ó´ó¼ò»¯ÁËÔÚJavaÏÂµÄÆóÒµ¼¶¿ª·¢¡£µ«ÊÇËæ×ÅJ2EEÔ½À´Ô½ÆÕ±éµØ±»Ó¦Óõ½¸÷¸öÁìÓòÖУ¬¿ª·¢ÕßÃǽ¥½¥Òâʶµ½ÐèÒªÒ»ÖÖ·½·¨À´±ê×¼»¯Ó¦ÓóÌÐòµÄ¿ª·¢¹ý³Ì£¬ËûÃDzÉÓõķ½·¨ÊDZê×¼»¯Ó¦ÓóÌÐòµÄ½á¹¹²ã¡£Ôڽṹ²ãͨ³£·â×°ÁËһЩ¶ÀÁ¢Ó ......

java»·¾³±äÁ¿ÅäÖÃ

windows xpÏÂÅäÖÃJDK»·¾³±äÁ¿£º
      1.°²×°JDK£¬°²×°¹ý³ÌÖпÉÒÔ×Ô¶¨Ò尲װĿ¼µÈÐÅÏ¢£¬ÀýÈçÎÒÃÇÑ¡Ôñ°²×°Ä¿Â¼ÎªD:\java\jdk1.5.0_08£»
¡¡ 2.°²×°Íê³Éºó£¬ÓÒ»÷“ÎҵĵçÄÔ”£¬µã»÷“ÊôÐÔ”£»
      3.Ñ¡Ôñ“¸ß¼¶”Ñ¡Ï£¬µã»÷“ ......

תÌùµÄjavaÃæÊÔÌâ,ÓпÕ×ö×ö¿´

תÁíÒ»¸öÂÛ̳µÄÌû×Ó£º
ѸÀ×ÃæÊÔ»ØÀ´£¬ÓÃÁËÕûÕûÒ»ÏÂÎ磨²»ÖªµÀÔõô˵ÁË£¬ÆäÖеȴýʱ¼ä¶¼¿ì2СʱÁË£©£¬×Ô¼º¸Ð¾õ±ÊÊÔºÍÉÏ»ú»¹¿ÉÒÔ£¬µ«¼¼ÊõÃæÌ¸ÕâÒ»¹Ø´ðµÃ²»Ì«ºÃ£¬ÏÖÔÚÔٴθоõ»¥ÁªÍø¹«Ë¾ÓëÒ»°ãÈí¼þ¹«Ë¾µÄÇø±ðÁË£¬ÆäÖÐÒ»µã¾ÍÊÇ»¥ÁªÍøÓ¦ÓÃÔÚÐÔÄÜÉÏÒªÇóºÜ¸ß£¬Ì¸ÁËÒ»¸öСʱ´ó²¿·ÖÌâÄ¿¸Ð¾õ¶¼ÔÚ̸ÂÛÐÔÄÜÎÊÌ⣬×Ô¼ºÔÚ·½ÃæÒ»Ö±ÊÇÈõÏî ......

Java Concurrent°üѧϰ֮ConcurrentHashMap

ÔÚJava concurrent°üÖÐÓÐÕâôһ¸ö½Ó¿Ú£ºConcurrentMap¡£
ConcurrentMap¼Ì³Ð×ÔMap£¬²¢Ìí¼ÓÁ˼¸¸öеÄÔ­×Ó·½·¨£º putIfAbsent¡¢remove¡¢replace
Æä·½·¨ÕªÒªÈçÏ£º
 V
putIfAbsent(K key, V value)
          Èç¹ûÖ¸¶¨¼üÒѾ­²»ÔÙÓëij¸öÖµÏà¹ØÁª£¬Ôò½ ......

javaÓÅÐãµÄ³ÌÐòÔ±±Ø¶Á

 1¡¢Óï·¨£º±ØÐë±È½ÏÊìϤ£¬ÔÚд´úÂëµÄʱºòIDEµÄ±à¼­Æ÷¶ÔijһÐб¨´íÓ¦¸ÃÄܹ»¸ù¾Ý±¨´íÐÅÏ¢ÖªµÀÊÇʲôÑùµÄÓï·¨´íÎó²¢ÇÒÖªµÀÈκÎÐÞÕý¡£
    2¡¢ÃüÁ±ØÐëÊìϤJDK´øµÄһЩ³£ÓÃÃüÁî¼°Æä³£ÓÃÑ¡ÏÃüÁîÖÁÉÙÐèÒªÊìϤ£ºappletviewer¡¢ HtmlConverter¡¢jar¡¢ java¡¢javac¡¢javadoc¡¢javap¡¢javaw¡¢native2ascii ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ