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 构造方法
普通非静态方法代码块执行
总结:静态代码块中的代码永远优先执行,类中的普通代码块中的代码在对象被创建的时候执行, 而且优先构造方法中的代码执行,最后类中的普通非静态方法才被执行。