Class Father {public static int m = 33; static {System. out. println ("parent class initialized");} class Child extends Father {static {System. out. println ("subclass initialized");} public class StaticTest {public static void main (String [] args) {System. out. println (Child. m );}}
33
Class Const {public static final String NAME = "I am a constant"; static {System. out. println ("initialize Const class") ;}} public class FinalTest {public static void main (String [] args) {System. out. println (Const. NAME );}}
Class Const {static {System. out. println ("initialize Const class") ;}} public class ArrayTest {public static void main (String [] args) {Const [] con = new Const [5] ;}}
Class Const {static {System. out. println ("initialize Const class") ;}} public class ArrayTest {public static void main (String [] args) {Const [] con = new Const [5]; for (Const a: con) a = new Const ();}}The following output result is displayed:
According to the first of the four rules, the new triggers the Const class.