直接上代码,更直观,包括一些解释:
/** * 类初始化时,首先加载静态代码块, * 注意:所有静态代码块都会在方法之前执行,不管放置的位置;但是静态代码块按照顺序执行 * 再次执行调用的方法 */ public class StaticClass { static Integer num=0; private StaticClass(){}; //初始化类时,先加载静态代码块 static{ try { num+=5; System.out.println("静态static方法11111!!!!"); } catch (Exception e) { e.printStackTrace(); } } //方法中使用static,方便直接调用 public static void print(){ System.out.println("打印具体业务信息!!!"+num); } static{ try { num+=9; System.out.println("静态static方法222!!!!"); } catch (Exception e) { e.printStackTrace(); } } }
测试与运行结果:
public class StaticTest { public static void main(String[] args) { StaticClass.print(); } /** * 结果: * 静态static方法11111!!!! * 静态static方法222!!!! * 打印具体业务信息!!!14 */ }
本文详细解析了Java中静态代码块的执行顺序及其在类初始化过程中的作用。通过实例演示了多个静态代码块如何按顺序执行,并展示了它们与非静态方法的调用关系。


被折叠的 条评论
为什么被折叠?



