java静态代码块

格式

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 {
//1.新建一个属性集对象
Properties pro = new Properties();
//2.读取配置文件,放入属性集
path = new Object() {
public String getPath() {
return this.getClass().getResource("/").getPath();
}
}.getPath().substring(1);

pro.load(new FileReader(path + "/jdbc.properties"));

//3.获取属性集中的各个配置属性ֵ
url = pro.getProperty("url");
user = pro.getProperty("user");
password = pro.getProperty("password");
driver = pro.getProperty("driver");
//4.加载数据库的驱动类
Class.forName(driver);
} catch(IOException e) {
e.printStackTrace();
} catch(ClassNotFoundException e) {
e.printStackTrace();
}
}

/**
* 方法部分
* ......
*/
}

java静态代码块
https://blog.wangxk.cc/2020/08/19/java静态代码块/
作者
Mike
发布于
2020年8月19日
许可协议