<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關(guān)鍵字除了一個是方法,一個是關(guān)鍵字外,最主要有什么區(qū)別?它們的區(qū)別在于創(chuàng)建對象的方式不一樣,前者是使用類加載機制,后者是創(chuàng)建一個新類。那么為什么會有兩種創(chuàng)建對象方式?這主要考慮到軟件的可伸縮、可擴展和可重用等軟件設(shè)計思想。?

    ????Java中工廠模式經(jīng)常使用newInstance()方法來創(chuàng)建對象,因此從為什么要使用工廠模式上可以找到具體答案。?例如:
    ????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();

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

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

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

    ????最后用最簡單的描述來區(qū)分new關(guān)鍵字和newInstance()方法的區(qū)別:
    ????newInstance:?弱類型。低效率。只能調(diào)用無參構(gòu)造。?
    ????new:?強類型。相對高效。能調(diào)用任何public構(gòu)造。
    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

    搜索

    •  

    積分與排名

    • 積分 - 210793
    • 排名 - 266

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 无码人妻精品中文字幕免费东京热| 一级特黄录像免费播放肥| 久久精品无码专区免费东京热 | 免费看美女让人桶尿口| 亚洲av无码久久忘忧草| 永久免费的网站在线观看| 在线观看日本亚洲一区| 国产成人涩涩涩视频在线观看免费| 亚洲第一成年网站视频| 亚洲精品成人区在线观看| 中文字幕乱码系列免费| 亚洲国产一成人久久精品| 久爱免费观看在线网站| 亚洲国产精品热久久| 麻豆视频免费播放| 亚洲 日韩经典 中文字幕| 日本a级片免费看| 羞羞视频免费网站日本| 亚洲人成精品久久久久| 18pao国产成视频永久免费| 国产精品高清视亚洲精品| 免费欧洲美女牲交视频| 精品国产免费人成网站| 精品亚洲成a人片在线观看| 免费福利网站在线观看| 亚洲欧美在线x视频| 亚洲欧洲无码AV电影在线观看| 久久99精品免费视频| 亚洲日韩看片无码电影| 国产亚洲精aa成人网站| 亚洲免费视频播放| 羞羞漫画登录页面免费| 久久亚洲高清观看| 性感美女视频在线观看免费精品| 麻豆91免费视频| 亚洲精品无码久久久久久久| 国产18禁黄网站免费观看| 一级毛片免费观看不卡的| 久久亚洲精品无码网站| 亚洲av午夜成人片精品网站| 成人性生交视频免费观看|