1, create FinalTest class, which has a final constant x
class FinalTest{ public static final int x = 3; static { System.out.println("FinalTest static block"); } } public class MyTest8 { public static void main(String[] args) { System.out.println(FinalTest.x); } }
Then print fianl constants in the Main method. Print results
3
2, then remove the final,
class FinalTest{ public static int x = 3; static { System.out.println("FinalTest static block"); } } public class MyTest8 { public static void main(String[] args) { System.out.println(FinalTest.x); } }
Print results:
FinalTest static block 3
3, will be changed randomly generated constants fianl
class FinalTest{ public static int x = new Random().nextInt(3); static { System.out.println("FinalTest static block"); } } public class MyTest8 { public static void main(String[] args) { System.out.println(FinalTest.x); } }
Print results
FinalTest static block 1