Java 面向对象 - 触发类的初始化,执行其中的 static 块(包含不会触发初始化的情况) 触发类的初始化执行其中的 static 块访问 static 字段publicclassSomeClass{static{System.out.println(static block executed);}publicstaticintnum100;}intnumSomeClass.num;访问 static 方法可以使用空方法推荐publicclassSomeClass{static{System.out.println(static block executed);}publicstaticvoidinit(){}}SomeClass.init();创建实例publicclassSomeClass{static{System.out.println(static block executed);}}SomeClasssomeClassnewSomeClass();使用Class.forName()加载类try{Class.forName(com.my.SomeClass);}catch(ClassNotFoundExceptione){e.printStackTrace();}不会触发初始化的情况访问.classpublicclassSomeClass{static{System.out.println(static block executed);}}Class?clazzSomeClass.class;访问编译期常量static final 基本类型或 static final StringpublicclassSomeClass{static{System.out.println(static block executed);}publicstaticfinalintnum100;publicstaticfinalStringstrhello world;}intnumSomeClass.num;StringstrSomeClass.str;访问非编译期常量可以触发类的初始化publicclassSomeClass{static{System.out.println(static block executed);}publicstaticfinalObjecttokennewObject();}ObjecttokenSomeClass.token;