我會走向何方

          我又該走向何方

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            15 Posts :: 2 Stories :: 17 Comments :: 0 Trackbacks
          最近研究了一下java的類加載器
          先看一下實例化一個類的幾種方法:
          1、new
          2、Class.newInstance
          3、clone()
          4、序列化
          再看一下加載一個類的幾種方法:
          1、A a =new A();(單獨聲明一個類A a,不會促使類加載器加載我們要的類,只有實例化new的時候類加載器才會為我們加載類)
          2、Class.forName(pkg.A); or Class.forName(pkg.A,true|fale,ClassLoader)
          3、classLoader.loadClass(pkg.A);
          java的類加載可以分為預(yù)先載入和依需求載入,用java -verbose可以看到類的加載順序
          關(guān)于類的初始化(執(zhí)行static程序段):
          1、A a = new A();在類加載的時候即進(jìn)行初始化
          2、Class.forName(A);在類加載的時候即進(jìn)行初始化
          3、Class.forName(A,false,classLoader);在newInstance的時候進(jìn)行初始化
          4、classLoader.loadClass(A);在newInstance的時候進(jìn)行初始化
          再看一下類加載器的分層結(jié)構(gòu)
          1、最上層是用c++實現(xiàn)的Bootstrap Loader,sun.boot.class.path
          2、ExtClassloader,搜尋位置為java.ext.dirs(System.geProperty("java.ext.dirs"))
          3、AppClassLoader(也稱System Loader),搜尋位置為CLASSPATH
          java的類加載器采用(委派模式),即類加載器器先委托父類去加載該類
          posted on 2006-07-23 18:58 hama 閱讀(482) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 辽中县| 云浮市| 南郑县| 襄汾县| 东乡| 政和县| 手游| 辛集市| 邳州市| 广水市| 兴义市| 紫阳县| 华池县| 延长县| 贵阳市| 托克逊县| 汝州市| 巨野县| 社旗县| 章丘市| 龙海市| 靖宇县| 镇江市| 新疆| 镇沅| 雅安市| 库伦旗| 仪陇县| 成武县| 大理市| 濉溪县| 剑阁县| 河北省| 清流县| 合川市| 孟村| 宣化县| 珲春市| 福建省| 柘城县| 万安县|