Java静态变量初始化遵循以下规则:
- 静态变量会按照声明的顺序先依次声明并设置为该类型的默认值,但不赋值为初始化的值。
- 声明完毕后,再按声明的顺序依次设置为初始化的值,如果没有初始化的值就跳过。
静态数据初始化如示例1所示:
- Example 1
public class Test {
public static Test1 t = new Test1();
public static int a = 0;
public static int b;
public static void main(String[] arg) {
System.out.println(Test.a);
System.out.println(Test.b);
}
}
class Test1 {
public Test1() {
Test.a++;
Test.b++;
}
}
- Ouput 1
0
1
如上所示,Test.a的值变化了三次,即声明时设置为0、Test1.Test1里设置为1、Test.a初始化为0。
网友评论