我會走向何方

          我又該走向何方

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            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的類加載可以分為預先載入和依需求載入,用java -verbose可以看到類的加載順序
          關于類的初始化(執行static程序段):
          1、A a = new A();在類加載的時候即進行初始化
          2、Class.forName(A);在類加載的時候即進行初始化
          3、Class.forName(A,false,classLoader);在newInstance的時候進行初始化
          4、classLoader.loadClass(A);在newInstance的時候進行初始化
          再看一下類加載器的分層結構
          1、最上層是用c++實現的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)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 广昌县| 分宜县| 棋牌| 德江县| 启东市| 长岭县| 贞丰县| 宜章县| 蓬安县| 邛崃市| 紫阳县| 介休市| 策勒县| 日土县| 西安市| 宁乡县| 武穴市| 高邮市| 呼伦贝尔市| 南川市| 南澳县| 上高县| 邢台市| 古丈县| 房产| 辽源市| 凤庆县| 平顺县| 屯昌县| 青铜峡市| 甘洛县| 高邑县| 连州市| 和顺县| 玉山县| 鹤壁市| 余干县| 十堰市| 芦溪县| 西乌珠穆沁旗| 塔河县|