Static Keyword
Static Keyword
What is static
The static keyword is used when a member variable of a class has to be shared between all the instances of the class. All static variables and methods belong to the class and not to any instance of the class
Example
Class staticDemo{ public static int a = 100; // All instances of staticDemo have this variable as a common ` variable public int b =2 ; public static showA(){ System.out.println(A is +a); } } Class execClass{ public static void main(String args[]){ staticDemo.a = 35; // when we use the class name, the class is loaded, direct access to a without any instance staticDemo.b=22; // ERROR this is not valid for non static variable staticDemo demo = new staticDemo(); demo.b = 200; // valid to set a value for a non static variable after creating an instance. staticDemo.showA(); //prints 35 } }
How it works
Basic Steps of how objects are created 1. Class is loaded by JVM 2. Static variable and methods are loaded and initialized and available for use 3. Constructor is called to instantiate the non static variables 4. Non static variables and methods are now available
As all the non static variable are available only after the constructor is called, there is a restriction on using non static variable in static methods.
Further Reading
http://docs.oracle.com/javase/tutorial/java/ja vaOO/classvars.html