Static keyword in java with examples

In this post, we will see about static keyword in java.So static keyword can be associated with:

  • Variable
  • Method
  • Block
  • Nested class

Lets go through each one by one.

Static variable:

If any instance variable is declared as static.It is known as static variable.

💻 Awesome Tech Resources:
  • Looking for ⚒️ tech jobs? Go to our job portal.
  • Looking for tech events? Go to tech events 🗓️ Calendar.️

Some points about static variables are:
  • Static variable belongs to a class not to a object.
  • Static variable are initialized only once in class area at the time of class loading
  • All objects share single copy of static variable
  • You don’t need to create object to access static variable.You can directly access it using class name.
  • Static variable can be accessed by instance java methods also.

If you create a class with two variables, one static, one non static.Non static variable of that class (objects created from that class) gets its own version of that variable. But with the static variable, it belongs to the class, and there is only one. Although any object from that class can reference it.
Lets take a very simple example.You want to track how many objects you have created.For that you have a static variable in your class.Lets say your class is:

When you run above program,you will get following results:


In above example,we have one static variable named “countryCounter” so whenever we are creating one new object,its value will be incremented by 1 as counterCounter variable is being shared by all country objects and we have instance variable named “dummyCounter” so whenever any new object is created,its value is initialized to 0 again.

Static Method:

If any method is declared as static.It is known as static method.

Some points about static methods are:
  •  Static method belongs to a class not to object.
  •  Static method can be invoked directly using a className.Although It can be invoked using      objectName also
  • Generally static method are used for getting static fields.
  • You can access static methods through java instance methods.
  • You can not access non static method or instance variable in static methods.
  • A static method can not refer to this or super keyword.
We will create above example and will use one static method printCountryCounter for printing countryCounter variable.
When you run above program,you will get following results: 

Why can’t you access non static member from static method:

When you call non static method from static method,you will get compilation error.
For example:In above printCountryCounter(),Lets say you call getName()
You will compilation error.

 Imagine a situation, when you are allowed to call getName() from printCountryCounter() .You can call printCountryCounter() just using class name so when you call printCountryCounter() ,what value getName() should return because value may be different for each new object and which value will it refer.So that is why,you are not allowed call non static member from static method.

Static block:

The static block, is a block of statement inside a Java class that will be executed when a class is first loaded in to the JVM
Some points about static blocks are:
  • Static blocks are used to initialize static data members.
  • Static blocks get executed before main method get executed.
When you run above program,you will get following results:

Static class:

In java,you can define a class within another class. Such a class is called a nested class. The class which enclosed nested class is known as Outer class. In java, we can’t make outer class static.
Only nested class can be declared as static
Some points about nested static class are:
  • Nested static class does not need reference of outer class.
  • A static class cannot access non-static members of the Outer class. It can access only static members of Outer class including private.


When you run above program,you will get following results:

Related Posts

  • How to end program in java
    08 March

    How to end program in java

    Ho In this post, we will see how to end program in java. You can use System.exit(0) to end program in java. Using System.exit() to end java program You can use exit() method of System class to end java program. System.exit() causes Java virtual machine to exit and terminate the current process. You can call […]

  • 25 September

    Reference Variable in Java

    In this post, we will see about Reference variable in java. Reference variable A variable that holds reference of an object is called a reference variable. Variable is a name that is used to hold a value of any type during program execution. If the type is an object, then the variable is called reference […]

  • 26 March

    Global variables in java

    In this post, we will see how to define global variables in java. Unlike C/C++, there are no standard global variables in java but you can still define global variables that can be used across all classes. Global variables are those variables that can be accessed across all the classes. Java does not support global […]

  • 26 March

    Static block in java

    In this post, we will see about how to implement static block in java. Here are some important points about static block in java. Static block is used for static initializations of a class Static block is executed only once when either you create an object of the class or access static member of the […]

  • 26 August

    Java default constructor

    In this post, we will see about Java default constructor. Default constructor is the no arg constructor which is inserted by compiler unless you provide any other constructor explicitly. You won’t able to see it as it is present in class file rather than source file. Is there any difference between no argument constructor and […]

  • 17 June

    How to learn Java Programming

    Java is one of the most used programming languages in the world for developing the desktop application and web application.It has completed 22 years in the programming world. In this post, we will see how to learn java programming in depth and in most efficient way. Java has a huge learning curve, it is a […]

Leave a Reply

Your email address will not be published. Required fields are marked *

Subscribe to our newletter

Get quality tutorials to your inbox. Subscribe now.