java对象都是new出来的吗,那么DriverManager.getConn(URL)算什么呢,他不也是创建恶劣Connection对象吗

来源:百度知道 编辑:UC知道 时间:2024/06/17 13:03:46
我进入到getConn()的源码看了,没有new语句啊

你没有仔细看源代码。
DriverManager.getConnection(String URL)这个方法中,返回语句是这样的:
return getConnection(url, info, callerCL);

而再看看getConnection(url, info, callerCL)这个静态方法,你会发现,它的返回语句是:
return di.driver.connect(url, info);

而这里的driver又是由registerDriver(Driver driver)这个静态方法给添加进去的。而registerDriver这个方法,又是在com.xxxxx.jdbc.Driver这个类的静态初始化块中调用的:
java.sql.DriverManager.registerDriver(new Driver());

看到了没? new语句在这里。

DriverManager中有get方法,可以直接通过get方法来取得;
如:
public class StudentFactory{
private static Student student=new Student("zhangsan");;
public static Student getStudent(){
return student;
}
public static void main(String[] args) {
Student s= StudentFactory.getStudent();
}
}
class Student{
private String name;
Student(String name){
this.name=name;
}
}

你要这么想:getConn方法可能是这么写的
public Connection getConn(String url){
Connection c