------- android培训、java培训、期待与您交流! ----------
程序执行的时候是有顺序的,那么就代码块来说有:静态代码块,构造代码块,普通代码块和同步代码块四种。
初接触的时候会经常弄不清到底谁先执行,咱来是一下就知道了。
先来说明一下个代码块:
1)普通代码块:
普通代码块就是直接定义在方法或语句中定义的代码块:
public voidshow(){
普通代码块
}
2)构造代码块:
直接写在类中的代码块:
优先于构造方法执行,每次实例化对象之前都会执行构造代码块。
publicclass Demo {
{
System.out.println("构造代码块");
}
public Demo(){
System.out.println("构造方法");
}
public static void main(String[] args) {
Demod1 = new Demo();
Demod2 = new Demo();
}
}
3)静态代码块
使用static 修饰的构造代码块:
特别强调一点:静态代码块优先于主方法执行,优先于构造代码块执行,不管有创建多少对象,静态代码块只执行一次。
那么上程序:
<span style="font-size:18px;">public class Demo {
Demo(){
System.out.println("构造方法!");
}
{
System.out.println("构造代码块!");//实例化对象的时候才会去调用!
}
static{
System.out.println("静态代码块!");
}
public static void main(String[] args) {
new Demo();
new Demo();//再次创建对象,证明无论创建几次对象,静态代码块都只执行一次
System.out.println("普通代码块!");
}
}</span>
输出:
静态代码块!
构造代码块!
构造方法!
构造代码块!
构造方法!
普通代码块!
------- android培训、java培训、期待与您交流! ----------
结果:优先级顺序:静态代码块 > 构造代码块 > 普通代码块