- 首先理解静态代码块的概念:
静态代码块是写在类里面的代码块,用static修饰,在大括号里面写的代码
public class Test(){
static{
System.out.println("这是个静态代码块");
}
}
在类加载的时候首先执行静态代码块里面的语句.
-
DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
-
Class.forName("com.mysql.cj.jdbc.Driver");
上面的是两个加载驱动的方式,如果你往Driver按着ctrl键和鼠标左键,进去看源码.
类里面有个静态代码块,加载类的时候自动 DriverManager.registerDriver(new Driver())语句.
两者是相同的结果.细微区别是,你采用第一种方法,你在new Driver对象时,那个类已经加载了,类加载的同时执行静态代码块,已经完成加载驱动,你把这个new的driver对象又传给registerDriver相当于加载了两次驱动.第二种方法只加载了一次驱动.