Comparison between static code blocks and {} code blocks. Comparison between static code blocks
Example 1:
Public class StaticDemo {System. out. println ("{} code block");} static {System. out. println ("static code block");} public static void main (String [] args ){}}
Static code blockView Code
Conclusion: static code blocks are executed when classes are loaded, but {} code blocks are not executed.
Example 2:
Public class StaticDemo2 {System. out. println ("{} code block");} static {System. out. println ("static code block");} public static void main (String [] args) {new StaticDemo2 ();}}
Static code block {}View Code
Conclusion: For a new class, the static code block is executed before the {} code block is executed.
Example 3:
Public class StaticDemo3 {public StaticDemo3 () {System. out. println ("constructor");} {System. out. println ("{} code block");} static {System. out. println ("static code block");} public static void main (String [] args) {new StaticDemo3 ();}}
Static code block {} code block ConstructorView Code
Conclusion: For a new class, the static code block is executed first, the {} code block is executed, and the constructor is executed finally.