Static Initialization Blocks in Java

Static Initialization Block:

In Java, a static initialization block is a piece of code within a class that gets executed only once when the class is loaded into memory by the Java Virtual Machine (JVM). The primary goal of a static initialization block is to initialize static fields or perform any necessary one-time setup tasks for the class.

Static block executes automatically.


static-initialization-blocks project:

MyClass.java 

public class MyClass {

// Static variable
static String message;

// Static initialization block
static {
message = "Hello world!";
}
}

Main.java 

public class Main {
public static void main(String[] args) {
MyClass myClass = new MyClass();
System.out.println(myClass.message);
// Output: Hello world!
}
}




static-initialization-blocks-with-constructor project:

MyClass.java 

public class MyClass {

// Static variable
static String message;

// Static initialization block
static {
message = "Hello world!";
}

// Constructor
public MyClass() {
message = "Hello from constructor!";
}
}

Main.java 

/**
* Order:
* <p> 1. fields
* <p> 2. static block
* <p> 3. constructor
*/
public class Main {
public static void main(String[] args) {
MyClass myClass = new MyClass();
System.out.println(myClass.message);
// Output: Hello from constructor!
}
}

💫The End 💫