Calvin's Tech Space

          成于堅忍,毀于浮躁

             :: 首頁 :: 聯系 :: 聚合  :: 管理

          我們都知道java里生成對象有如下兩種方式:

          1Object obj = new ClassName(); 

          直接new一個對象

          2Class clazz = Class.forName(ClassName);

              Object obj = clazz.newInstance(); 

          通過class loader動態裝載一個類,然后獲取這個類的實例

              同樣是生成對象,1在編譯期間檢查classpath, 如果沒有類定義,編譯沒法通過。而2在編譯期間是不會檢查的,不過需要拋出或者自己catch ClassNotFoundException。 運行期間,如果1編譯時依賴的類不在classpath中(導致classloader裝載失?。?/font>,此時拋出的異常就是 NoClassDefFoundError。而如果2在運行期間需要裝載的類不在classpath中,拋出的則是 ClassNotFoundException。

           

          posted on 2009-09-16 21:23 calvin 閱讀(168) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 苏尼特左旗| 广南县| 左云县| 蕲春县| 临高县| 龙南县| 吕梁市| 潢川县| 黑水县| 黄大仙区| 桃江县| 盐边县| 双牌县| 蕉岭县| 冷水江市| 金乡县| 镇江市| 赤峰市| 吉木萨尔县| 奎屯市| 聂拉木县| 资兴市| 太谷县| 大荔县| 芜湖市| 特克斯县| 信阳市| 棋牌| 万年县| 巴里| 墨竹工卡县| 师宗县| 阿拉善左旗| 城固县| 扎赉特旗| 南康市| 大渡口区| 华亭县| 鸡泽县| 邳州市| 民权县|