格式
1 2 3 4 5
| public class 类名称{ static{ } }
|
特点
当第一次用到本类时,静态代码块执行唯一的一次。
静态内容总是优先于非静态,所以静态代码块比构造方法先执行。
典型用途
用来一次性地对静态成员变量进行赋值
示例
一个JDBC工具类的代码展示
这里静态代码块的作用是一次性读取配置文件信息,然后初始化JDBC工具类并常驻内存,起到了配置JDBC工具的作用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| public class JDBCUtils { private static String url ; private static String user ; private static String password ; private static String driver ; private static String path = null;
static { try { Properties pro = new Properties(); path = new Object() { public String getPath() { return this.getClass().getResource("/").getPath(); } }.getPath().substring(1); pro.load(new FileReader(path + "/jdbc.properties")); url = pro.getProperty("url"); user = pro.getProperty("user"); password = pro.getProperty("password"); driver = pro.getProperty("driver"); Class.forName(driver); } catch(IOException e) { e.printStackTrace(); } catch(ClassNotFoundException e) { e.printStackTrace(); } }
}
|