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.

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

  • Check if Object is null Java
    14 March

    Check if Object Is Null in Java

    Table of ContentsComparison Operator to Check if Object Is Null in JavaisNull() Method to Check if Object Is Null in JavanonNull() Method to Check if Object Is Null in JavarequireNonNull() Method to Check if Object Is Null in JavaConclusion An object in Java is an instance of a class. It is a real entity existing […]

  • How to print multiple variables in java
    31 January

    How to Print Multiple Variables in Java

    Table of ContentsWays to Print Multiple Variables in JavaUsing System.out.printUsing System.out.printfPrint Multiple Variables in Java Using LoggerFrequently Asked QuestionsHow Do I Print Multiple Values on One Line in JavaHow to Print Multiple Integers in JavaHow to Print String and Integer in Same Line in Java In this post, we will see how to print multiple […]

  • What is == in java
    01 December

    What is == in java

    Table of ContentsWhat is meaning of == in JavaCode example of ==Object equality using equal to ==The difference between == and equals== in EnumConclusion In this tutorial, we will learn what is == in Java as it is a common lexeme that we will use while developing applications. The == lexeme can be confused with […]

  • Multiple classes in one file in Java
    18 October

    Multiple classes in one file in Java

    Table of ContentsIntroductionMethods to Implement Multiple Classes In One Java Program1) Nested classes2) Multiple non-static nested classes In this post, we will see how to have multiple classes in one file in java. Introduction You need to have any number of classes in a single Java file, but there is a restriction that you can […]

  • Break out of nested loop in java
    22 July

    How to break out of nested loops in Java

    Table of ContentsUsing break (will break inner loop)Using named loopUsing named blockUsing returnConclusion In this post, we will see how to break out of nested loops in Java. Using break (will break inner loop) It is very important to understand how nested loops work to ensure that applying break will output the desired result. If […]

  • public static void main(String args[]) - Java main method
    11 June

    public static void main(String[] args) – Java main method

    Table of ContentsWhy is the main method so important?SyntaxExplanation of the KeywordsExamples of Java main method ProgramsSimple Java ProgramPassing arguments in the main methodNon-Public main method.Defining a return value for the main methodOverloading the main methodQuestionsCan we run java without main method?Can we have more than one main method in classConclusion If you have worked […]

Leave a Reply

Your email address will not be published.

Subscribe to our newletter

Get quality tutorials to your inbox. Subscribe now.