非静态代码块如:
{
System.out.println("2");
}
以上代码块就是非静态的代码块,请注意这里的方法名、作用域、返回值、参数一概没有,非静态代码块会在每次类被调用或者被实例化时就会被执行。
静态代码块如:
static {
System.out.println("3");
}
上面的代码块就是静态的代码块,同样没有方法名、作用域、返回值以及参数,静态代码块类似于静态变量,不论类被调用多少次,该区域代码只在第一次时执行一次
大家可以通过下面的代码做进一步的测试
public class test1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
new test1();
new test1();
}
{
System.out.println("2");
}
static {
System.out.println("3");
}
public test1(){
System.out.println("1");
}
}
输出结果为
3
2
1
2
1
从结果中发现静态代码块以及非静态代码块都会在构造函数前执行,首次访问时,静态代码块会在非静态代码块前执行
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)