cuiyi's blog(崔毅 crazycy)

          記錄點滴 鑒往事之得失 以資于發展
          數據加載中……

          ClassLoader專題(二):從Servlet容器看ClassLoader機制的妙用

          ClassLoader 專題(一): ClassLoader 基礎

          ClassLoader 專題(二):從 Servlet 容器看 ClassLoader 機制的妙用
              ClassLoader專題(三):引文

          classloader有啥妙用(1)?
          這個問題得從自定義的classloader身上說,那自定義classloader緣由是什么呢?
          告訴你:大多是因為編譯時無法預知運行時需要哪些類,特別是app server;因此自定義classloader,運行時指定路徑,來加載這個路徑下的class


          特殊說明
          特殊說明1:如果沒有特殊指定,用戶自定義的classloader都把system classloader作為它的父加載器
          特殊說明2:jvm認為不同的classloade載入相同名字的class是不同的,即使從同一個class文件載入


          classloader有啥妙用(2)?
          看到特殊說明2,你或許就會感覺疑惑或者不爽;啥概念?
          以servlet、ejb等容器來剖析這個問題:

          將接口或者基類放入classpath                         <---------system classloader
          執行時,動態載入實現或者繼承這些接口或者基類的子類;<---------customized classloader
                   ||
                   ||
          用customized classloader載入類時,發現它有一個父類class(extends);
          但是在載入它時,jvm先加載父類class; 這個父類是system classloader能識別的; 根據“委托機制”它將由system classloader來加載;
          然后customized classloader(實際是system classloader來加載)再載入這個class,創建一個實例,轉型為父類;
          jvm就使用system classloader再次載入父類class,然后將此實例轉型為這個父類class;

          這個過程加載了兩個父類class,都是由system classloader載入;即同一個classloader載入同一個文件,造型不會由異常

          web app server大概是這樣工作的;這樣載入了任何繼承了servlet的class并正確運行它們,不管class是什么,都它們實例化為一個servlet class

          posted on 2006-11-24 22:20 crazycy 閱讀(3510) 評論(7)  編輯  收藏 所屬分類: JavaSE語言

          評論

          # re: ClassLoader專題(二):從Servlet容器看ClassLoader機制的妙用  回復  更多評論   

          專題二沒大看明白,
          再搜搜相關資料看一看去。
          2007-02-03 01:01 | xigo

          # re: ClassLoader專題(二):從Servlet容器看ClassLoader機制的妙用  回復  更多評論   

          想請教下前輩,對自定義classloader的實際應用方面的看法。最近在做這個畢設。指點一二,不勝感激。
          2007-04-16 20:52 | 久城

          # re: ClassLoader專題(二):從Servlet容器看ClassLoader機制的妙用  回復  更多評論   

          @久城
          有個文章很棒,一起分享
          http://www.javaworld.com/javaworld/javaqa/2003-06/01-qa-0606-load.html?page=1
          2007-05-05 01:43 | crazycy

          # re: ClassLoader專題(二):從Servlet容器看ClassLoader機制的妙用  回復  更多評論   

          謝謝BZ,已經收集...
          http://www.aygfsteel.com/realsmy/archive/2007/04/26/113672.html
          2007-05-05 08:10 | 久城

          # re: ClassLoader專題(二):從Servlet容器看ClassLoader機制的妙用  回復  更多評論   

          @久城
          網上現有的翻譯只是前邊部分,翻譯總體不錯,幾個細節比較粗糙,比如為什么JNDI需要引入ContextClassLoader,翻譯錯過了幾個關鍵的詞,導致難以理解;見我在ClassLoader專題(三)中原文標注部分
          2007-05-06 00:40 | crazycy

          # re: ClassLoader專題(二):從Servlet容器看ClassLoader機制的妙用  回復  更多評論   

          太感謝了!~學習!
          2007-05-06 10:05 | 久城

          # re: ClassLoader專題(二):從Servlet容器看ClassLoader機制的妙用  回復  更多評論   

          壓力容器人才網www.cpvjob.com 壓力容器人才求職、壓力容器企業招聘唯一專業性人才招聘網站,歡迎登陸,祝工作愉快,請轉發給您的好友
          2008-11-19 19:52 | 壓力容器人才網
          主站蜘蛛池模板: 德阳市| 榆林市| 荣昌县| 榆社县| 云龙县| 湾仔区| 安顺市| 嘉善县| 周至县| 唐河县| 松江区| 公主岭市| 九寨沟县| 梧州市| 德昌县| 绥阳县| 三亚市| 屯昌县| 横峰县| 赤壁市| 内乡县| 永和县| 区。| 绥江县| 沁阳市| 虹口区| 黎城县| 灵武市| 信宜市| 磴口县| 罗山县| 临夏市| 水富县| 乌拉特后旗| 徐汇区| 庆云县| 桂阳县| 新丰县| 伊宁县| 平安县| 怀柔区|