静态块中的初始化之间有什么区别:
公共类静态测试{
静态字符串s;
静态int n;
静态双d;
静止的{
s=“我是静态的”;
n=500;
d=4000.0001;
}
...
和单个静态初始化:
公共类静态测试{
静态字符串s=“我是静态的”;
静态int n=500;
静态双d=4000.0001;
....
静态初始化块允许更复杂的初始化,例如使用条件:
静态双a;
静止的{
如果(某些条件){
a=0;
}否则{
a=1;
}
}
或者当需要的不仅仅是构造时:当使用生成器创建实例时,除了创建静态字段外,还需要进行异常处理或其他工作
静态初始化块也会在内联静态初始化器之后运行,因此以下内容有效:
静态双a;
静态双b=1;
静止的{
a=b*4;//计算结果为4
}