Static keyword means β€œbelongs to the class, not to an instance”.
You can access static members without creating an object.

Static Usage Summary

Use WithEffect
VariableShared across all instances
MethodCan be called without an object
BlockStatic initializer runs once when the class loads
Class (nested)Declared a static nested class

Example

Static Variable
class Counter {
    static int count = 0;
    
    Counter() {
        count++;
    }
}
 
System.out.println(Counter.count);
// Value shared across all instances
Static Method
class MathUtil {
    static int square(int x) {
        return x * x;
    }
}
 
int result = MathUtil.square(5); // No object needed
Static Block
class InitExample {
    static { // Executes once when class is loaded
        System.out.println("Class loaded");
    }
}
Static-Nested Class
class Outer {
    static class Inner {
        void show() {
            System.out.println("Static Nested Class");
        }
    }
}
 
Outer.Inner obj = new Outer.Inner();
obj.show();

Tip

Mention static when asked about:

  • utility classes (Math, Collections),
  • shared variables,
  • main() method: public static void main(…),
  • why static methods can’t access instance members directly.

Parent: _Core