Java program initialization generally follows three principles:
- Static takes precedence over non-static.
- The parent class takes precedence over the child class.
- Initialize in the defined order.
The specific initialization sequence is as follows:
- Parent static variable
- Parent static code block
- Subclass static variables
- Subclass static code block
- Parent non-static variable
- Parent non-static code block
- Super class constructor
- Subclass non-static variables
- Subclass non-static code block
- Subclass construction method