Initialization blocks of Java are divided into static initialization blocks and non-static initialization blocks
Static initialization blocks
Static { // Initialize content }
Non-static initialization block
{ // Initialize content }
Static initialization blocks can only initialize class variables, which are static decorated data members. A non-static initialization block is executed once every time the object is generated, and an instance variable of the class can be initialized. Two types of initialization blocks are not allowed to pass parameters.
A non-static initialization block executes when the constructor executes and the constructor body code is not executed before execution
Static initialization blocks, non-static initialization blocks, constructors are executed in the following order: static initialization block-and non-static initialization block--constructor
Non-static initialization blocks are used more in anonymous inner classes because the constructors cannot be used by anonymous inner classes, so initialization work can be given to non-static initialization blocks.
Initialization blocks for Java