加载数据库驱动的问题

冰水混合物l 2012-08-11 05:41:53
Class.forName("org.gjt.mm.mysql.Driver") 这句反复调用会有什么情况发生?
是只调用一次,还是不断的分配资源?
...全文
62 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰水混合物l 2012-08-12
  • 打赏
  • 举报
回复
谢谢!
qqliang1314 2012-08-11
  • 打赏
  • 举报
回复
用反射加载,应该只是在刚开始的时候加载一次
宏Lee 2012-08-11
  • 打赏
  • 举报
回复
简单做一实验即可


public class Test {

public static void main(String[] args) {
try {
Class<?> a = Class.forName("org.gjt.mm.mysql.Driver");
Class<?> a1 = Class.forName("org.gjt.mm.mysql.Driver");
System.out.println(a == a1);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}
打印出来为true,证明是同一对象,这里不担心对象过多的情况,不存在,因为是单例,既然是单例,所以也可以忽略两次加载是时间的差异,不过加载驱动,1次即可,多了没用
VanBaston 2012-08-11
  • 打赏
  • 举报
回复
好像应该只加载一次吧!
他好像是要先判断你加载的类是不是已经被加载了,没加载的话才加载。

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧