<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 89,  comments - 98,  trackbacks - 0
    在初始化一個類,生成一個實例的時候,newInstance()方法和new關鍵字除了一個是方法,一個是關鍵字外,最主要有什么區別?它們的區別在于創建對象的方式不一樣,前者是使用類加載機制,后者是創建一個新類。那么為什么會有兩種創建對象方式?這主要考慮到軟件的可伸縮、可擴展和可重用等軟件設計思想。?

    ????Java中工廠模式經常使用newInstance()方法來創建對象,因此從為什么要使用工廠模式上可以找到具體答案。?例如:
    ????class?c?=?Class.forName(“Example”);
    ????factory?=?(ExampleInterface)c.newInstance();?

    ????其中ExampleInterface是Example的接口,可以寫成如下形式:?
    ????String?className?=?"Example";
    ????class?c?=?Class.forName(className);
    ????factory?=?(ExampleInterface)c.newInstance();

    ????進一步可以寫成如下形式:
    ????String?className?=?readfromXMlConfig;//從xml?配置文件中獲得字符串
    ????class?c?=?Class.forName(className);
    ????factory?=?(ExampleInterface)c.newInstance();

    ????上面代碼已經不存在Example的類名稱,它的優點是,無論Example類怎么變化,上述代碼不變,甚至可以更換Example的兄弟類Example2?,?Example3?,?Example4……,只要他們繼承ExampleInterface就可以。

    ????從JVM的角度看,我們使用關鍵字new創建一個類的時候,這個類可以沒有被加載。但是使用newInstance()方法的時候,就必須保證:1、這個類已經加載;2、這個類已經連接了。而完成上面兩個步驟的正是Class的靜態方法forName()所完成的,這個靜態方法調用了啟動類加載器,即加載java?API的那個加載器。

    ????現在可以看出,newInstance()實際上是把new這個方式分解為兩步,即首先調用Class加載方法加載某個類,然后實例化。?這樣分步的好處是顯而易見的。我們可以在調用class的靜態加載方法forName時獲得更好的靈活性,提供給了一種降耦的手段。

    ????最后用最簡單的描述來區分new關鍵字和newInstance()方法的區別:
    ????newInstance:?弱類型。低效率。只能調用無參構造。?
    ????new:?強類型。相對高效。能調用任何public構造。
    posted on 2006-09-22 09:08 水煮三國 閱讀(367) 評論(0)  編輯  收藏 所屬分類: J2SE
    <2006年9月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    常用鏈接

    留言簿(4)

    隨筆分類(85)

    隨筆檔案(89)

    文章分類(14)

    文章檔案(42)

    收藏夾(37)

    java

    oracle

    Sybase

    搜索

    •  

    積分與排名

    • 積分 - 210809
    • 排名 - 266

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲乱码一区二区三区在线观看 | 亚洲国产美女视频| 免费一级不卡毛片| 亚洲AV无码久久精品成人| 男人j进入女人j内部免费网站| 国产美女亚洲精品久久久综合| 一个人免费播放在线视频看片| 亚洲熟伦熟女新五十路熟妇| 成在人线av无码免费高潮水| 久久久久亚洲爆乳少妇无 | 日本亚洲欧美色视频在线播放| 波多野结衣久久高清免费 | 亚洲精品无码人妻无码| 国产精品免费看久久久无码| 美女视频黄频a免费| 一本色道久久综合亚洲精品高清| 一级特黄a免费大片| 亚洲Av综合色区无码专区桃色| 97公开免费视频| 亚洲va乱码一区二区三区| 日本免费人成黄页网观看视频| 人妻巨大乳hd免费看| 亚洲AV无码乱码在线观看富二代| 久草免费在线观看视频| 亚洲欧美中文日韩视频| 国产日韩成人亚洲丁香婷婷| 久久福利青草精品资源站免费| 亚洲国产精品人久久电影| 国产一级高清免费观看| 久久永久免费人妻精品| 亚洲中文字幕无码久久| 国产成人亚洲综合| 51在线视频免费观看视频| 日韩国产精品亚洲а∨天堂免| 337p日本欧洲亚洲大胆裸体艺术| 五月婷婷在线免费观看| 黄色网址免费在线| 久久精品亚洲精品国产色婷| 国产无遮挡吃胸膜奶免费看 | 永久在线观看www免费视频| 亚洲AV无码成人精品区日韩|