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:

  • 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

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.

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;
}
}

Popular posts from this blog

Learn Java 8 streams with an example - print odd/even numbers from Array and List

Java Stream API - How to convert List of objects to another List of objects using Java streams?

Registration and Login with Spring Boot + Spring Security + Thymeleaf

Java, Spring Boot Mini Project - Library Management System - Download

ReactJS, Spring Boot JWT Authentication Example

Top 5 Java ORM tools - 2024

Java - Blowfish Encryption and decryption Example

Spring boot video streaming example-HTML5

Google Cloud Storage + Spring Boot - File Upload, Download, and Delete