Java ClassLoaderÉîÈë½²½â
µ±JVM£¨JavaÐéÄâ»ú£©Æô¶¯Ê±£¬»áÐγÉÓÉÈý¸öÀà¼ÓÔØÆ÷×é³ÉµÄ³õʼÀà¼ÓÔØÆ÷²ã´Î½á¹¹£º
bootstrap classloader
|
extension classloader
|
system classloader
bootstrap classloader £Òýµ¼£¨Ò²³ÆÎªÔʼ£©Àà¼ÓÔØÆ÷£¬Ëü¸ºÔð¼ÓÔØJavaµÄºËÐÄÀà¡£ÔÚSunµÄJVMÖУ¬ÔÚÖ´ÐÐjavaµÄÃüÁîÖÐʹÓÃ-XbootclasspathÑ¡Ïî»òʹÓà - DÑ¡ÏîÖ¸¶¨sun.boot.class.pathϵͳÊôÐÔÖµ¿ÉÒÔÖ¸¶¨¸½¼ÓµÄÀà¡£Õâ¸ö¼ÓÔØÆ÷µÄÊǷdz£ÌØÊâµÄ£¬Ëüʵ¼ÊÉϲ»ÊÇ java.lang.ClassLoaderµÄ×ÓÀ࣬¶øÊÇÓÉJVM×ÔÉíʵÏֵġ£´ó¼Ò¿ÉÒÔͨ¹ýÖ´ÐÐÒÔÏ´úÂëÀ´»ñµÃbootstrap classloader¼ÓÔØÁËÄÇЩºËÐÄÀà¿â£º
URL[] urls=sun.misc.Launcher.getBootstrapClassPath().getURLs();
for (int i = 0; i < urls.length; i++) {
System.out.println(urls.toExternalform());
}
ÔÚÎҵļÆËã»úÉϵĽá¹ûΪ£º
Îļþ:/C:/j2sdk1.4.1_01/jre/lib/endorsed/dom.jar
Îļþ:/C:/j2sdk1.4.1_01/jre/lib/endorsed/sax.jar
Îļþ:/C:/j2sdk1.4.1_01/jre/lib/endorsed/xalan-2.3.1.jar
Îļþ:/C:/j2sdk1.4.1_01/jre/lib/endorsed/xercesImpl-2.0.0.jar
Îļþ:/C:/j2sdk1.4.1_01/jre/lib/endorsed/xml-apis.jar
Îļþ:/C:/j2sdk1.4.1_01/jre/lib/endorsed/xsltc.jar
Îļþ:/C:/j2sdk1.4.1_01/jre/lib/rt.jar
Îļþ:/C:/j2sdk1.4.1_01/jre/lib/i18n.jar
Îļþ:/C:/j2sdk1.4.1_01/jre/lib/sunrsasign.jar
Îļþ:/C:/j2sdk1.4.1_01/jre/lib/jsse.jar
Îļþ:/C:/j2sdk1.4.1_01/jre/lib/jce.jar
Îļþ:/C:/j2sdk1.4.1_01/jre/lib/charsets.jar
Îļþ:/C:/j2sdk1.4.1_01/jre/classes
Õâʱ´ó¼ÒÖªµÀÁËΪʲôÎÒÃDz»ÐèÒªÔÚϵͳÊôÐÔCLASSPATHÖÐÖ¸¶¨ÕâЩÀà¿âÁ˰ɣ¬ÒòΪJVMÔÚÆô¶¯µÄʱºò¾Í×Ô¶¯¼ÓÔØËüÃÇÁË¡£
extension classloader £À©Õ¹Àà¼ÓÔØÆ÷£¬Ëü¸ºÔð¼ÓÔØJREµÄÀ©Õ¹Ä¿Â¼£¨JAVA_HOME/jre/lib/ext»òÕßÓÉjava.ext.dirsϵͳÊôÐÔÖ¸¶¨µÄ£©ÖÐJARµÄ Àà°ü¡£ÕâΪÒýÈë³ýJavaºËÐÄÀàÒÔÍâµÄй¦ÄÜÌṩÁËÒ»¸ö±ê×¼»úÖÆ¡£ÒòΪĬÈϵÄÀ©Õ¹Ä¿Â¼¶ÔËùÓдÓͬһ¸öJREÖÐÆô¶¯µÄJVM¶¼ÊÇͨÓõģ¬ËùÒÔ·ÅÈëÕâ¸öĿ¼µÄ JARÀà°ü¶ÔËùÓеÄJVMºÍsystem classloader¶¼ÊǿɼûµÄ¡£ÔÚÕâ¸öʵÀýÉϵ÷Ó÷½·¨getParen
Ïà¹ØÎĵµ£º
1.Java ÐòÁл¯¼¼Êõ¿ÉÒÔʹÄ㽫һ¸ö¶ÔÏóµÄ״̬дÈëÒ»¸öByte Á÷À²¢ÇÒ¿ÉÒÔ´ÓÆäËüµØ·½
°Ñ¸ÃByte Á÷ÀïµÄÊý¾Ý¶Á³öÀ´¡£ÖØÐ¹¹ÔìÒ»¸öÏàͬµÄ¶ÔÏó¡£ÕâÖÖ»úÖÆÔÊÐíÄ㽫¶ÔÏóͨ¹ýÍøÂç
½øÐд«²¥£¬²¢¿ÉÒÔËæÊ±°Ñ¶ÔÏó³Ö¾Ã»¯µ½Êý¾Ý¿â¡¢ÎļþµÈϵͳÀï¡£JavaµÄÐòÁл¯»úÖÆÊÇRMI¡¢
EJB¡¢JNNIµÈ¼¼ÊõµÄ¼¼Êõ»ù´¡
2.²¢·ÇËùÓеÄJava Àà¶¼¿ÉÒÔÐòÁл¯ ......
Ê×ÏÈҪ˵µÄÊÇ,HibernateÖÐORMÀï¶ÔÓ¦µÄÓ³ÉäÎļþBEAN,±ØÐëʵÏÖÐòÁл¯.ÒòΪBEANÀïµÄÊý¾ÝÐèÒª´æÈëÊý¾Ý¿â(Ҫת»¯Îª¶þ½øÖƱ£´æ),½øÐдæÈ¡¹¤×÷.
JAVAÀàµÄÊý¾Ý ,Èç¹ûÒª½øÐÐÏà¹ØµÄ´æ´¢¹¤×÷(ÈçдÎļþ,ÍøÂç´«Êä,дÊý¾Ý¿âµÈ),ÄÇôÕâ¸öÊý¾ÝµÄÀà ¾Í±ØÐëʵÏÖÐòÁл¯½Ó¿Ú (java.io.Serializable ......
import java.net.*;
import java.io.*;
public class PortScanner {
public static void main(String args[]){
String host="localhost";
new PortScanner().scan(host);
}
public void scan(String host){
  ......
(1) ÀàÃûÊ××ÖĸӦ¸Ã´óд¡£×ֶΡ¢·½·¨ÒÔ¼°¶ÔÏ󣨾ä±ú£©µÄÊ××ÖĸӦСд¡£¶ÔÓÚËùÓбêʶ·û£¬ÆäÖаüº¬µÄËùÓе¥´Ê¶¼Ó¦½ô¿¿ÔÚÒ»Æð£¬¶øÇÒ´óдÖм䵥´ÊµÄÊ××Öĸ¡£ÀýÈ磺
ThisIsAClassName
thisIsMethodOrFieldName
ÈôÔÚ¶¨ÒåÖгöÏÖÁ˳£Êý³õʼ»¯×Ö·û£¬Ôò´óдstatic final»ù±¾ÀàÐͱêʶ·ûÖеÄËùÓÐ×Öĸ¡£ÕâÑù±ã¿É±êÖ¾³öËüÃÇÊôÓÚ±àÒëÆÚµ ......
±¾ÎIJûÊöÁËÔõôʹÓÃDBMS´æ´¢¹ý³Ì¡£ÎÒ²ûÊöÁËʹÓô洢¹ý³ÌµÄ»ù±¾µÄºÍ¸ß¼¶ÌØÐÔ£¬±ÈÈç·µ»ØResultSet¡£±¾ÎļÙÉèÄã¶ÔDBMSºÍJDBCÒѾ·Ç³£ÊìϤ£¬Ò²¼ÙÉèÄãÄܹ»ºÁÎÞÕϰµØÔĶÁÆäËüÓïÑÔд³ÉµÄ´úÂ루¼´²»ÊÇJavaµÄÓïÑÔ£©£¬µ«ÊÇ£¬²¢²»ÒªÇóÄãÓÐÈκδ洢¹ý³ÌµÄ±à³Ì¾Àú¡£
´æ´¢¹ý³ÌÊÇÖ¸±£´æÔÚÊý¾Ý¿â²¢ÔÚÊý¾Ý¿â¶ËÖ´ÐеijÌÐò¡£Äã¿ÉÒÔʹÓÃÌØÊâ ......