Java中有三种代码块,三种代码块中的代码执行的优先级是面试中会被提问到的问题。
三种代码块:静态代码块、方法代码块、普通代码块
其中,普通代码块是比较少见而且比较少使用的。
package com.kdyzm.demo;
public class Main {
static {
System.out.println("静态代码块执行");
}
public Main(){
System.out.println("Main 构造方法");
}
{
System.out.println("普通代码块执行");
}
public static void main(String[] args) {
new Main().show();
new Main().show();
new Main().show();
}
public void show() {
System.out.println("普通非静态方法代码块执行");
}
}
运行结果:
运行结果 写道
静态代码块执行
普通代码块执行
Main 构造方法
普通非静态方法代码块执行
普通代码块执行
Main 构造方法
普通非静态方法代码块执行
普通代码块执行
Main 构造方法
普通非静态方法代码块执行
普通代码块执行
Main 构造方法
普通非静态方法代码块执行
普通代码块执行
Main 构造方法
普通非静态方法代码块执行
普通代码块执行
Main 构造方法
普通非静态方法代码块执行
总结:静态代码块中的代码永远优先执行,类中的普通代码块中的代码在对象被创建的时候执行, 而且优先构造方法中的代码执行,最后类中的普通非静态方法才被执行。