Class.forName(xxx.xx.xx)返回的是一個(gè)類。
Class.forName(xxx.xx.xx)的作用是要求JVM查找并加載指定的類,也就是說JVM會(huì)執(zhí)行該類的靜態(tài)代碼段。
Class.forName("")的作用是要求JVM查找并加載指定的類,如果在類中有靜態(tài)初始化器的話,JVM必然會(huì)執(zhí)行該類的靜態(tài)代碼段。
而在JDBC規(guī)范中明確要求這個(gè)Driver類必須向DriverManager注冊(cè)自己,即任何一個(gè)JDBC Driver的 Driver類的代碼都必須類似如下:
public class MyJDBCDriver implements Driver {
static {
DriverManager.registerDriver(new MyJDBCDriver());
}
}
既然在靜態(tài)初始化器的中已經(jīng)進(jìn)行了注冊(cè),所以我們?cè)谑褂肑DBC時(shí)只需要Class.forName(XXX.XXX);就可以了。