public class Cloning {
Cloning c=new Cloning();
public static void main(String[] args) {
Cloning c=new Cloning();
c.print();
}
pub
Didn't you mean to write static Cloning c = new Cloning(); outside main, or c = new Cloning(); within main instead?
Otherwise, you'll get a new instance of c each time this is run, which will cause a StackOverflowError.
Currently the creation of the local c in Cloning c = new Cloning(); (which shadows the field c) kicks the whole thing off.