類加載機制

          類加載機制
              敘述:類加載機制就是將.class文件加載到JVM,并形成class對象的機制。之后就可以對其實例化并使用,這個機制可以動態(tài)的加載外部的類、遠程下載的class文件,并且可以做到類之間的隔離。
              步驟:JVM加載的步驟:裝載、鏈接、初始化。
                      裝載:將class文件中的字節(jié)碼加載到JVM,并通過全名(org.test.Test)和類加載器(ClassLoader)來加載到JVM中。
                      鏈接:負責對裝載的二進制字節(jié)碼的格式進行檢驗,初始化類中的靜態(tài)標量并檢查類中調用的接口、類。最后對所有的屬性、方法進行檢驗。
                   初始化:初始化是執(zhí)行靜態(tài)初始化代碼、構造器代碼和靜態(tài)屬性的初始化
                              出發(fā)的方式:1.new 2.反射 3.子類調用初始化 4.JVM啟動參數中的類
          ClassLoader:有4種ClassLoader負責加載類。
              1.Bootstrap ClassLoader
                  由C++實現的,來加載jre/lib/rt.jar、resources.jar等。在java中無法拿到此對象。
              2.Extension ClassLoader
                  用來加載java擴展包,jre/lib/ext/*.jar。
              3.System ClassLoader
                  用來加載參數中的指定的classpath的jar,在類中顯示對應的是AppClassLoader。
              4.User-Defined ClassLoad
                  是java開發(fā)人員繼承ClassLoader抽象類自行實現的ClassLoader,可以加載非classpath中的類(網絡下載的java、class),還可以在加載之前做一些事情。

          加載順序:
               首先要說明一個誤區(qū),這個誤區(qū)是經常理解有問題的。
                  classloader加載的只是class(類),不要認為它加載的是對象,這樣你就會很是理解不了classloader加載順序。
                  classloader的順序是先父后子(這里因為Bootstrap ClassLoader在java中拿不到,所以他是最先完成加載的)
                  已委托的方式循序加載
                  例如:User-Defined ClassLoad有個一類要加載則先會去委托System ClassLoader加載依此類推,每個節(jié)點都會委托父節(jié)點去加載,
                          如果父節(jié)點沒有加載到自己再去加載,如果父節(jié)點加載了將吧加載的引用返回給自己。
                  兩個java類相同的條件不盡需要同樣的包名和class而且加載器也必須相同,這樣的類才算是統(tǒng)一各類。比如有classloaderA和classloaderB,都加在了
          Test類,兩次別加載的類是不一樣的。這也體現出了隔離性。

          posted on 2012-03-27 15:16 海峰 閱讀(148) 評論(0)  編輯  收藏 所屬分類: JVM理解


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


          網站導航:
           
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統(tǒng)計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宝丰县| 新乡市| 当阳市| 太原市| 玉田县| 津市市| 凤山市| 寿宁县| 长寿区| 呼和浩特市| 天祝| 襄汾县| 海兴县| 余江县| 肥西县| 双城市| 行唐县| 天水市| 盐山县| 墨竹工卡县| 马关县| 灵宝市| 淮阳县| 浦江县| 噶尔县| 将乐县| 育儿| 雷州市| 宁晋县| 万源市| 肃宁县| 郁南县| 克东县| 林芝县| 宁晋县| 秦皇岛市| 七台河市| 万载县| 沂南县| 怀化市| 临湘市|