Initialization block are used to initialize field with a complex logics such as:
static {
// whatever code is needed for initialization goes here
}
The static initialization block only gets:
A JDBC driver makes use of a static initializer block to register itself in the DriverManager
{
// whatever code is needed for initialization goes here
}
The dynamic initialization block gets called every-time a class is instantiated. They act like extensions of constructor methods.
public class InitiablizationBlock {
static int myVariable;
static{
System.out.println("Static");
myVariable = 1;
}
{
System.out.println("Dynamic block");
}
public static void main(String[] args) {
InitiablizationBlock t = new InitiablizationBlock ();
InitiablizationBlock t2 = new InitiablizationBlock ();
}
}
Output:
Static
Dynamic block
Dynamic block