Skip to main content

Featured Post

Top 10 Advance Java Interview questions?

Top 10 Advance Java Interview questions?   What are the differences between abstract classes and interfaces in Java? What is the difference between ArrayList and LinkedList in Java? What is the purpose of the finalize() method in Java? What is polymorphism in Java and how is it achieved? What are the different types of inner classes in Java? What is the difference between static and non-static methods in Java? What are the different types of exceptions in Java and how do they differ? What is the difference between checked and unchecked exceptions in Java? How does Java handle multithreading and synchronization? What are the different types of JDBC drivers in Java and how do they differ?

What is the difference between a static and non-static method in Java?

Difference between a static and non-static method in Java


In Java, a method can be declared as static or non-static. The main differences between static and non-static methods are:

  1. Accessing: Non-static methods are invoked using an instance of the class, while static methods are invoked using the class name itself. Static methods can be called without creating an instance of the class, whereas non-static methods can only be called on an object of the class.

  2. Use of instance variables: Non-static methods can access instance variables and non-static methods of the class directly, while static methods cannot. Static methods can only access static variables and other static methods.

  3. Polymorphism: Non-static methods can be overridden in subclasses, while static methods cannot be overridden but can be hidden if a subclass defines a method with the same name and signature.

  4. Memory allocation: Non-static methods are associated with an instance of a class, and each instance has its own copy of non-static methods. However, static methods are not associated with any instance of a class, and only one copy of the static method exists in memory for the entire program.

In summary, static methods are used when you need to perform a task that does not depend on the state of an object or the data stored in an object. On the other hand, non-static methods are used when you need to perform a task that depends on the state of an object or the data stored in an object.


In Java, a static method is a method that belongs to the class, while a non-static method is a method that belongs to an instance of the class. Here are some differences between the two:

  1. Accessing the Method: To access a static method, you can call it using the class name, while a non-static method can only be called on an instance of the class.

  2. Instance Variables: A static method cannot access instance variables directly, while a non-static method can access instance variables directly.

  3. Memory Allocation: A static method is stored in memory once and can be shared by all instances of the class, while non-static methods are created for each instance of the class.

  4. Overriding: Static methods cannot be overridden in Java, while non-static methods can be overridden in subclasses.

  5. Polymorphism: Polymorphism does not work with static methods in Java, while it works with non-static methods.

In summary, static methods are useful for defining utility methods or methods that don't need to access instance variables, while non-static methods are useful for defining methods that depend on the state of an instance.

Comments