Java - static keyword in Java with example
Java static keyword is used to create a Class level variable in java. static variables and methods are part of the class, not the instances of the class.
The static keyword in Java is used for memory management mainly. We can apply java static keyword with variables, methods, blocks, and nested classes.
static is a non-access modifier in Java that is applicable for the following:
A static method can access only static variables of class and invoke only static methods of the class.
Usually, static methods are utility methods that we want to expose to be used by other classes without the need of creating an instance. For example Collections class.
Java Wrapper classes and utility classes contain a lot of static methods. The main() method that is the entry point of a java program itself is a static method.
We can use static keyword with nested classes. the static keyword can’t be used with top-level classes.
A static nested class is the same as any other top-level class and is nested for only packaging convenience.
The static keyword in Java is used for memory management mainly. We can apply java static keyword with variables, methods, blocks, and nested classes.
static is a non-access modifier in Java that is applicable for the following:
- blocks
- variables
- methods
- nested classes
- Interface static method(Java 8 onwards)
Java static variable
We can use static keyword with a class-level variable. A static variable is a class variable and doesn’t belong to the Object/instance of the class.
Since static variables are shared across all the instances of Object, they do not thread-safe.
Usually, static variables are used with the final keyword for common resources or constants that can be used by all the objects.
public class KnowledgeFactoryStaticDemo {
// static variable example private static int count; public static final String DB_USER_NAME = "knowledge@factory.com";}
Java static method
Same as a static variable, the static method belongs to the class and not to class instances.A static method can access only static variables of class and invoke only static methods of the class.
Usually, static methods are utility methods that we want to expose to be used by other classes without the need of creating an instance. For example Collections class.
Java Wrapper classes and utility classes contain a lot of static methods. The main() method that is the entry point of a java program itself is a static method.
public class KnowledgeFactoryStaticDemo { // static util method example public static int addNumbers(int num1, int num2) { return num1 + num2; }}
Java static block
If you need to do the computation in order to initialize your static variables, you can declare a static block that gets executed exactly once, when the class is first loaded.public class KnowledgeFactoryStaticDemo { // static block static { System.out.println("Static block initialized."); }}
Java static class
A static nested class is the same as any other top-level class and is nested for only packaging convenience.
public class KnowledgeFactoryStaticDemo { // static block static { System.out.println("Static block initialized."); }
// static class example - used for packaging convenience only public static class MyStaticClass { public int count; }}