Why am I getting a StackOverflowError exception in my constructor

Your main method creates a Cloning instance (Cloning c=new Cloning();), which causes the initialization of the instance variable c (Cloning c=new Cloning();), which creates another Cloning instance, and so on…

You have an infinite chain of constructor calls, which leads to StackOverflowError.

In the above code I have a simple class and a class level instance

You don’t have a class level instance. You have an instance level instance. If you want a class level instance, change

Cloning c=new Cloning();

to

static Cloning c=new Cloning();

Leave a Comment