class A { private B b = new B(); @Override public String toString() { return "b "+b; } } class B { private A a = new A(); @Override public String toString() { return ""; } } class StackoverflowErrorTest { public static void main(String[] args) { A a = new A(); } }