Java 程序中时常用些 static {} 这样的结构。
这样的结构叫 static块 ,一般是一个类初始化时运行的代码。 注意,是类的初始化,不是对象的初始化。 也就是你在定义对象是,它运行的初始化代码,并且只有第一次定义时才运行。之后就不再运行初始化了。 一个类中可以可以有很多static块。static块按顺序执行。 看以下代码:
public class TestStatic{ static{
System.out.println(1); } static{
System.out.println(2); }
public static void main(String[] args){ System.out.println(5); } static{
System.out.println(3); } static{
System.out.println(4); } }
执行的结果是 1 2 3 4 5
一目了然,首先调用的是static静态快的代码,然后调用启动方法.而static块的执行顺序是由代码的编写顺序执行的过程. static块大家用得比较少,其实就是在对象生成之际产生一系列的static变量。
因此在可见static块代码是要先于所有使用累方法执行的,会在类的初始化时进行自动调用。此时生成的是一些static的变量。且在多static块的情况下每一个static块都是在进行顺序执行的。