Java static Block: Definition and Usage
☰Fullscreen
Table of Content:
Java supports a special block, called static block (also called static clause) which can be used for static initializations of a class. This code inside static block is executed only once: the first time you make an object of that class or the first time you access a static member of that class (even if you never make an object of that class). For example, check output of following Java program.
Program
// filename: MainClass.java
class Test {
static int i;
int j;
// start of static block
static {
i = 20;
System.out.println("static block called ");
}
// end of static block
}
class MainClass {
public static void main(String args[]) {
// Although we don't have an object of Test, static block is
// called because i is being accessed in following statement.
System.out.println(Test.i);
}
}
Output:
show method of sub class. display method of super class. Press any key to continue . . .
static blocks are executed before constructors.
Also, static blocks are executed before constructors. For example, check output of following Java program.
Program
// filename: MainClass.java
class Test {
static int i;
int j;
// start of static block
static {
i = 20;
System.out.println("static block called ");
}
// end of static block
}
class MainClass {
public static void main(String args[]) {
// Although we don't have an object of Test, static block is
// called because i is being accessed in following statement.
System.out.println(Test.i);
}
}
Output:
show method of sub class. display method of super class. Press any key to continue . . .
- Question 1: What is static block?