Interview program on static method in Java

In this article, we will see sample program involving static method

 

What will be output of following program ?

package in.bench.resources.interview;

public class DemoStatic {

	// sample static method
	private static void staticMethod() {
		System.out.println("This is static-method with"
				+ " name staticMethod();");
	}

	// main() - entry point to JVM execution
	public static void main(String[] args) {

		DemoStatic ds = null;
		ds.staticMethod();
	}
}

Output:

This is static-method with name staticMethod();

Explanation:

  • We are invoking static-method with reference-variable which is assigned to null
  • Not even created object using new operator at line 14
  • So, one might think that, during execution of program it will throw NullPointerException
  • But program displays correct output without error during  runtime/execution
  • Reason : because to invoke static-method, we don’t require actual instantiated object
  • Instead static-method can be invoked with class-name like <Class-Name>.<static-method>
  • Sometimes, uninitialized reference-variable is enough to call/invoke static-method, as shown in the above program
  • Actually while calling/invoking static-method with reference-variable, Compiler warns with message “The static method <static-method-name()>  from the type DemoStatic should be accessed in a static way“, as shown in the below screen-capture
  • Correct-way to invoke static-method is,
    1. <Class-Name>.<static-method> (most preferred)
    2. <reference-variable>.<static-method>

 

Share with us, if you have faced any tricky interview question/program faced during Java Interview. We will publish along with solution.

 

Happy Coding !!
Happy Learning !!

Interview program on String using null