Table of Contents

Java - (Static|Dynamic) Initialization blocks

About

Initialization block are used to initialize field with a complex logics such as:

Type

Static

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

Dynamic

{
    // 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.

Example

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

Documentation / Reference