匿名代码块和静态代码块区别是什么?
直接看代码实例:
package com.yang.oop;
public class Demo07 {
{
System.out.println("匿名代码块开始执行!");
}
static {
System.out.println("static静态代码块开始执行!");
}
public static void main(String[] args) {
System.out.println("main方法开始执行!");
Demo07 demo07 = new Demo07();
System.out.println("===========main方法开始执行!");
Demo07 demo08 = new Demo07();
}
}
输出结果为:
可以看到,匿名代码块在类每次生成的时候,都会被执行。
而静态代码块,只被执行一次。且执行顺序的优先级最高,因为JVM先把静态代码块里面内容加载了。
可以在写一个构造方法,看看静态代码块和构造方法的执行顺序:
package com.yang.oop;
public class Demo07 {
{
System.out.println("匿名代码块开始执行!");
}
static {
System.out.println("static静态代码块开始执行!");
}
Demo07(){
System.out.println("构造方法开始执行!");
}
public static void main(String[] args) {
System.out.println("main方法开始执行!");
Demo07 demo07 = new Demo07();
System.out.println("===========main方法开始执行!");
Demo07 demo08 = new Demo07();
}
}
输出结果:
可以看到,静态代码块的优先级是最高的。