javaÔËÐл·¾³ Àà×°ÔØÆ÷ClassLoader
½ñÌì¹Û¿´ÁËÀ¶É½ÀÏʦjava±³ºóµÄÃØÃÜÏà¹ØÊÓƵ£¬·¢ÏÖÒªÏëд³ö¸ßÐÔÄܵijÌÐò£¬Ò»¶¨Òª¶ÔÆäÔËÐÐÔÀíÒÔ¼°ÆäÔËÐл·¾³ÓÐÏ൱³Ì¶ÈµÄÁ˽⡣ÄÇClassLoaderÊÇÏ൱¹Ø¼üµÄÒ»¸ö²¿·Ö¡£
ÏÈ˵ÏÂjava³ÌÐòÔËÐеĻù±¾Á÷³Ì£¬ÏȽ«javaÎļþ±àÒëΪclassÎļþ£¬È»ºóͨ¹ýClassLoader£¨Àà¼ÓÔØÆ÷£©£¬¼ÓÔص½Runtime Data Area£¨ÀàËÆÓÚÄڴ棩ÖУ¬ÔÙ½»ÓëExecution Engine£¨Ï൱ÓÚCPU£©½øÐÐÖ´ÐвÙ×÷£¬ÈôjavaÓïÑÔÓе÷ÓÃÆäËûµÄÓïÑÔ½øÐÐÏà¹Ø¼ÆË㣬ÔòÐèÒªÓõ½Native interfaceÕâ¸ö²¿·Ö£¬×îÖÕÐγÉNative Libraries£¬ÖÁ´Ë£¬Ö´ÐÐÍê³É¡£
ÄÇ¿´ÁËÉÏÃæµÄÁ÷³Ì£¬ClassLoaderÊÇÒ»¸öClassÎļþµÄÔØÈëÆ÷£¬ÆäÔØÈëµÄ·½Ê½ÓÐÔ¤ÏÈÔØÈëºÍ°´ÐèÔØÈëÁ½ÖÖ·½Ê½¡£Ô¤ÏÈÔØÈëÖ÷ÒªÊÇÔØÈëһЩ¾ßÌåµÄjavaϵͳÎļþ£¬¸÷¸öjavaÔËÐбØÐèµÄÀàÎļþ£»°´ÐèÔØÈëÖ÷ÒªÊÇÎÒÃÇ×Ô¼ºËù±àдµÄ¾ßÌåµÄjavaµÄÀàÎļþ¡£Ô¤ÏÈÔØÈëºÍ°´ÐèÔØÈë¿É¹ËÃû˼Ò壬ԤÏÈÔØÈëÊÇÔÚÖ´ÐÐû¸ö³ÌÐòÇ°¶¼ÐèÒª½øÐÐÔØÈ룬°´ÐèÔØÈëÊÇÖ»ÓÐÔÚµ÷ÓþßÌåµÄÀàÎļþʱ²Å½øÐÐÔØÈë¡£ÎÒÃÇ¿ÉÒÔͨ¹ý¸ÃÃüÁîÀ´×·×Ùjava³ÌÐòÖ´ÐÐʱ£¬ËùÔØÈëµÄ¾ßÌåµÄclassÎļþ---java -verbose:class Main(±àÒëºÃµÄÎļþÃû)¡£
°´ÐèÔØÈëÓÖ·ÖΪÁ½ÖÖ·½Ê½£¬ÎªÏÔʽºÍÒþʽ.ÒþʽÊÇÎÒÃDZȽϳ£ÓõÄ,¾ßÌåµÄÐÎʽ²»Ê¹ÓÃnew()¹Ø¼ü×Ö,¶øÏÔʽµÄ·½·¨Ö÷ÒªÊÇÏÂÃæÁ½ÖÖ·½Ê½,Ò»¸öÊÇClass.forName()ºÍClassLoader.LoadClass()·½·¨.Class.forNameÔÚ×öÓëÊý¾Ý¿âµÄÁ¬½ÓʱÓùý,²»¹ýÒÔÇ°²»Á˽âÆ京Òâ.ÕâÁ½ÖÖ·½·¨ÎÒÄ¿Ç°¸Ð¾õÒþʽµÄÓÃÆðÀ´¸ü·½±ã,µ«ºöÂÔÁ˾ßÌåµÄÔØÈë¹ý³Ì£»ÏÔʽµÄÔØÈëÓÃÆðÀ´¸´ÔÓ£¬µ«¶Ô³ÌÐò¾ßÌåµÄÖ´ÐÐÁ÷³Ì£¬ÎÒÃÇ¿ÉÒÔ½øÐÐÏêϸµÄ¿ØÖÆ¡£
¾ßÌåÔõôÓÃÕâ¸ö»¹Ã»Ì«¸ãÃ÷°×£¬»¹ÐèÔÙÑо¿ÏÂ.Ã÷Ìì»á°ÑclassLoaderÄÚ²¿µÄ¾ßÌå¹¹ÔìÔÙÑо¿Ï¡£
ÏÂÃæÊÇ×öÕâ¸öÁ·Ï°Ê±µÄ¾ßÌåÄÚÈÝ£º
//MyClassLoader
import java.io.*;
import java.net.*;
import java.lang.reflect.*;
public class MyClassLoader extends URLClassLoader{
private static File file = new File("F:\\java\20100108 ");
public MyClassLoader(){
super(getUrl());
}
public static URL[] getUrl(){
try{
return new URL[]{file.toURL()};
}catch(MalformedURLException e){
return new URL[0];
}
}
}
//A.java
import java.lang.reflect.*;
public class A {
public static void main(String[] args){
try{
Ïà¹ØÎĵµ£º
1.¼¯ºÏµÄÌص㣺
¶¼Î»ÓÚ java.util°üÖУ¬²»ÄÜ´æ·Å»ù±¾ÀàÐ͵ÄÊý¾Ý£¬¶øÖ»ÄÜ´æ·Å¶ÔÏóµÄÒýÓ㬲Ù×÷µÄÊýÄ¿¿ÉÒÔ²»¹Ì¶¨£¨ÀàËÆÓÚ¶¯Ì¬Êý×飩¡£
2.·ÖÀࣺ
ÓÐÈý¸öÀࣺ
a.Set(¼¯)£º¶ÔÏó²»°´Ìض¨·½Ê½ÅÅÐò£¬Ã»ÓÐÖظ´ÔªËØ¡£Õâ¸öÓëÊýѧÖеļ¯ºÏ¸ÅÄî×îÏàËÆ¡£
b.List(Áбí)£º°´ÕÕË÷ÒýλÖÃÅÅÐò£¬¿ÉÒÔÓÐÖظ´ÔªËØ£¬ÔÊÐí°´ÕÕ¶ÔÏóÔÚ¼¯ºÏÖеÄË ......
±¾È˾ãËÄÄêÑз¢¾Ñ飨javaµÄ£©
˸øÎÒÍƼö·ÝǶÈëʽcְ룬cÓïÑÔһֱûÂäÏ£¬Ñ§µÄ»¹ÐС£¡£¡£¹¤×Ê¿ªÎÒ2k¾ÍÐУ¡
ֻΪ³É¹¦´òÈëǶÈëʽÊг¡¡£¡£¡£¸ø¸ö»ú»á°É¡£¡£
ÎÒÕæµÄÊÇÌ«ÏëºÍÄãÃÇ×öͬÐÐÀ²£¡
ÓÐÒâÏòµÄ¿ÉÒÔÁªÏµÎÒ¡£¡£ÎÒ²»Ìô´ýÓö£¬¶Ô¹¤×÷¾ÍÒ»¸öÒªÇó£¬Ç¶Èëʽ¿ª·¢¡£¡£¡£ÎÒÓеģ¬¾ÍÊÇ4ÄêµÄjavaÑз¢¾ÑéºÍc»ù´¡¡£¡£¡£ÌáÇ ......
transientÊÇJavaÓïÑԵĹؼü×Ö£¬ÓÃÀ´±íʾһ¸öÓò²»ÊǸöÔÏó´®Ðл¯µÄÒ»²¿·Ö¡£µ±Ò»¸ö¶ÔÏó±»´®Ðл¯µÄʱºò£¬transientÐͱäÁ¿µÄÖµ²»°üÀ¨ÔÚ´®Ðл¯µÄ±íʾÖУ¬È»¶ø·ÇtransientÐ͵ıäÁ¿ÊDZ»°üÀ¨½øÈ¥µÄ!
public class User implements Serializable{
private static final long serialVersionUID = 1L;
private Integer id;
......
·½·¨µÄÖØÔØ
£ºÍ¬Ò»¸öÀàÀïÃæ·½·¨µÄÃû×ÖÏàͬ£¬·½·¨µÄ²ÎÊýÏÖ÷ÒªÊDzÎÊýÀàÐÍ£¬²ÎÊý¸öÊý£©
²»Í¬
,
·µ»ØÀàÐÍ¿ÉÄܲ»Í¬¡£
ÖØÔØ·½·¨¿ÉÒÔ¾ßÓв»Í¬µÄ·µ»ØÀàÐÍ£¬µ«·µ»ØÀàÐͱ¾Éí²»×ãÒÔÇø·Ö·½·¨µÄÁ½¸ö°æ
±¾¡£ ......
Ä¿Ç°JAVA2ÓÐÈý¸ö°æ±¾£ºJ2EE£¨ÆóÒµ°æ£©¡¢J2SE£¨±ê×¼°æ£©¡¢J2ME£¨Î¢ÐͰ棩
1¡¢J2SE£¨JAVA2 Standart Edition£©
JAVA2±ê×¼°æ Ö§³ÖËùÓÐJAVA±ê×¼¹æ·¶ÖÐËù¶¨ÒåµÄºËÐÄÀຯÊý¿âºÍËùÓеÄJAVA»ù±¾Àà±ð¡£J2SE¶¨Î»ÔÚ¿Í»§¶Ë³ÌÐòµÄÓ¦ÓÃÉÏ¡£
2¡¢J2EE£¨JAVA2 Enterprise Edition£©
......