When a variable is declared as static, then a single copy of the variable is created and shared among all objects at the class level. Static variables are, essentially, global variables. All instances of the class share the same static variable.
Important points for static variables:
- We can create static variables at class-level only. See here
- static block and static variables are executed in order they are present in a program.
Below is the java program to demonstrate that static block and static variables are executed in the order they are present in a program.
class Test {
static int a = m1();
static
{
System.out.println( "Inside static block" );
}
static int m1()
{
System.out.println( "from m1" );
return 20 ;
}
public static void main(String[] args)
{
System.out.println( "Value of a : " + a);
System.out.println( "from main" );
}
}
|
Output:
from m1
Inside static block
Value of a : 20
from main