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.
// Java program to demonstrate execution // of static blocks and variables   class Test {       // static variable     static int a = m1();       // static block     static     {         System.out.println( "Inside static block" );     }       // static method     static int m1()     {         System.out.println( "from m1" );         return 20 ;     }       // static method(main !!)     public static void main(String[] args)     {         System.out.println( "Value of a : " + a);         System.out.println( "from main" );     } } |
from m1 Inside static block Value of a : 20 from main
[…] Static Variable is a variable that is declared as static means a single copy of the variable is created and shared among all objects at the class level. Static method is a method belonging to the class rather than the object of a class as well as a static method can be invoked without the need for creating an instance of a class. […]