Class.forName("org.gjt.mm.mysql.Driver") 这句反复调用会有什么情况发生?
是只调用一次,还是不断的分配资源?

解决方案 »

  1.   

    简单做一实验即可
    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次即可,多了没用