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

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

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

    jbrg2008

    人以銅為鏡,可以正衣冠;以古為鏡,可以見興替;以人為鏡,可以知得失.

    Class.forName的含義

           Class.forName(xxx.xx.xx) 返回的是一個類, .newInstance() 后才創建一個對象 Class.forName(xxx.xx.xx);的作用是要求JVM查找并加載指定的類,也就是說JVM會執行該類的靜態代碼段

    Class aClass = Class.forName(xxx.xx.xx);
    Object anInstance = aClass.newInstance();
    這其中Class.forName("").newInstance()返回的是object

    例:
    Class Driver{
    protected static Driver current;
    public static Driver getDriver(){
    return current;
    }
    }

    Class MyDriver extends Driver{
    static{
    Driver.current=new MyDriver();
    }
    MyDriver(){}
    }

    用時:
    Class.forName("MyDriver");
    Driver d=Driver.getDriver();

    有的jdbc連接數據庫的寫法里是Class.forName(xxx.xx.xx);而有一些:Class.forName(xxx.xx.xx).newInstance(),為什么會有這兩種寫法呢?

    在JDBC規范中明確要求這個Driver類必須向DriverManager注冊自己,即任何一個JDBC Driver的Driver類的代碼都必須類似如下:
    public class MyJDBCDriver implements Driver {
    static {
    DriverManager.registerDriver(new MyJDBCDriver());
    }
    }

    所以我們在使用JDBC時只需要Class.forName(XXX.XXX);就可以了,在JDBC驅動中,有一塊靜態代碼,也叫靜態初始化塊,它執行的時間是當class調入到內存中就執行(你可以想像成,當類調用到內存后就執行一個方法)。所以很多人把jdbc driver調入到內存中,再實例化對象是沒有意義的。

    posted on 2008-01-08 08:25 翰林 閱讀(346) 評論(0)  編輯  收藏 所屬分類: J2SE綜合


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


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 在线视频精品免费| 亚洲国产成人高清在线观看| 可以免费观看一级毛片黄a| 亚洲自偷自偷在线制服| 亚洲国产精品成人精品小说| 无码精品人妻一区二区三区免费 | 亚洲精品视频在线免费| 国产乱子影视频上线免费观看| 亚洲AV人无码激艳猛片| 老司机午夜免费视频| 精品免费人成视频app | 日韩激情淫片免费看| 久久久国产精品亚洲一区| 无码免费又爽又高潮喷水的视频| 国产一级淫片视频免费看| 亚洲欧美在线x视频| 欧洲一级毛片免费| 亚洲噜噜噜噜噜影院在线播放 | 久久精品国产亚洲AV麻豆~| 日本系列1页亚洲系列| 四虎精品亚洲一区二区三区| 久久亚洲精品国产亚洲老地址 | 亚洲AV无码之日韩精品| 亚洲日韩国产欧美一区二区三区| 久久久久久久久久国产精品免费 | www一区二区www免费| 国产美女无遮挡免费网站| 国产 亚洲 中文在线 字幕| 啊v在线免费观看| 免费人成毛片动漫在线播放| 亚洲中文字幕无码永久在线| 三年片在线观看免费观看大全动漫 | 亚洲国产精品日韩专区AV| 免费萌白酱国产一区二区三区| 亚洲精品国产精品乱码不卞 | 亚洲国产综合专区电影在线| 成人网站免费大全日韩国产| 亚洲中文字幕无码爆乳av中文 | 亚洲国产精品视频| 91精品导航在线网址免费| 亚洲综合自拍成人|