静态块,说句实话这个理解和编写都是很简单的,但是深入了解后又会发现里面的内容也是很多的
一、定义
用static申明,JVM加载类时执行,仅执行一次
二、格式
static{ //代码 }
二、静态块、静态变量和main谁先调用
static { a = 20; System.out.println("11"); // System.out.println(a);//会报错 } private static int a=1; static { System.out.println("12"); System.out.println("1 a=" + a); } public static void main(String[] args) { System.out.println("3 a=" + a); System.out.println("5 a=" + JdbcUtil.a); } static{ System.out.println("13"); }
输出结果
11
12
1 a=1
13
3 a=1
5 a=1
静态块和静态变量比main先运行
静态块和静态变量以从上到下的顺序执行
三、作用
很多人常说,我一个静态变量根本不要直接的使用静态块中,我可以直接执行在类中,这是语法确实没有错误,所以静态块的真正优点在于可以在调用该类时可以先执行一次,这个方法很实用与工具类的环境编写中。比如JdbcUtil的MySQL驱动加载。