Java类的静态初始化器(initializer)

Java类接受一整块的静态初始化代码,这部分代码会在第一次load class的时候执行。

当类有一些静态变量,同时不能用一行代码解决初始化时,可以使用这个方法。而不是建一个initial方法,每次new的时候都调用一次,这样的好处就是在使用Class.forName(xxx.xx.xx)等方法加载类的时候,自动调用static{……}内的语句,完成对类的初始化,常用来加载驱动程序,比如Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");用来注册JDBC-ODBC桥驱动,为连接数据库做准备。

//JdbcOdbcDriver.class类的静态初始化器部分的代码
static
  {
    JdbcOdbcTracer localJdbcOdbcTracer = new JdbcOdbcTracer();
    if (localJdbcOdbcTracer.isTracing()) {
      localJdbcOdbcTracer.trace("JdbcOdbcDriver class loaded");
    }

    JdbcOdbcDriver localJdbcOdbcDriver = new JdbcOdbcDriver();
    try
    {
      DriverManager.registerDriver(localJdbcOdbcDriver);
    }
    catch (SQLException localSQLException) {
      if (localJdbcOdbcTracer.isTracing())
        localJdbcOdbcTracer.trace("Unable to register driver");
    }
  }
}

在"sun.jdbc.odbc.JdbcOdbcDriver"类中的静态初始化器中实现DriverManager.registerDriver(driver)方法,向DriverManager 注册给定驱动程序。之后就可以使用DriverManager.getConnection(URL)尝试建立到给定数据库 URL 的连接,DriverManager 会尝试从已注册的 JDBC 驱动程序集中选择一个适当的驱动程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值