Static is a Non Access Modifier in java. It is mainly used to attach a Variable or Method to a Class. A static variables or methods belongs to a class rather than objects.
Static keyword in Java is used in the declaration of member methods, instance variables, inner classes and static blocks. However, static keyword is not applicable to a class.
Static Variable
- Static variables are also known as class variables as they belongs to the class and not the instance if class(objects).
- Class variables also known as Static fields are shared by all objects of a class. Regardless of how many objects we create, there is only one instance of static variable for all objects. Same copy of a static field is accessed by all objects.
- Static variables are initialized(gets memory) only once at the time of class loading. Static variables gets initialized before any object of that class can be created.
- To access a static variable we don't have to create an object. We can access a static variable by using the name of the class.
- Syntax to access static variables :
.
Uses of Static Variables
- We can use static variables to define class level constants. If we want all objects to share a constant value like rate of interest, value of PI(3.141), Number of students in class etc, then we declare it as a class level constant using static keyword.
- Using static variables makes you program memory efficient as each object of class will share shame copy of static variables instead of creating it's own.
Static Methods
- Like static variables, static methods also belongs to a class and not instances of class.
- A static method can only access static variables and can only call other static methods of class. It cannot access non-static variables and methods.
- A static method can be called without an object. Like static variables, we can invoke static methods using class name.
- We cannot use "super" and "this" reference inside static method as we can invoke it without any object.
Uses of Static Methods
We use static methods to write a common utility methods to be use by everyone. Static methods are heavily used in writing a shared library.
We use static methods to write a common utility methods to be use by everyone. Static methods are heavily used in writing a shared library.
Static Blocks
- Static block is a code block inside class surrounded by { and } which gets executed once at the time of class loading.
- Static blocks are used to initialize static variables.
-
Syntax of static block
static { // static block statement }
Points to remember about static keyword
- A static variable and static method can be accessed without using creating objects.
- static modifier cannot be applied to a class.
- A static method can only access other static variables and methods of a class.
- As static method cannot use super and this references.
- Static Methods can not be overriden.