I tried to search the answer on google but didn't find. Why below program is giving StackOverflowError.
public class HelloWorld {
private HelloWorld obj = new HelloWorld(); // (HelloWorld.java:2)
public static void main(String args[]) {
HelloWorld obj = new HelloWorld();
obj.printHello();
}
private void printHello(){
System.out.println("Hello world");
}
}
Output:
Exception in thread "main" java.lang.StackOverflowError
at HelloWorld.<init>(HelloWorld.java:2)
at HelloWorld.<init>(HelloWorld.java:2)
....................
If I comment the instance variable obj, then program prints "Hello world" and there is no error.
See below:
public class HelloWorld {
// private HelloWorld obj = new HelloWorld();
public static void main(String args[]) {
HelloWorld obj = new HelloWorld();
obj.printHello();
}
private void printHello(){
System.out.println("Hello world");
}
}
Output:
Hello world