运行下面的程序class A
{
   B b();
}class B
{
   A a();
}public class Test
{
   new A();
}这个程序在编译时没有问题,但运行时会出现问题,
在我的电脑上大概在产生了2244个A对象和B对象之后,
出错停止,打印很长一串东西.有没有有人能讲下这是
什么原因,谢谢

解决方案 »

  1.   

    你a中调用b ,b中调用a 肯定要执行很多重复的啥!
      

  2.   

    那没办法,你这样写,不是栈溢出(调用的层次太深了),就是堆溢出(new的对象太多了)
      

  3.   

    楼主可以试一下如下语句:Vector v = new Vector();
    v.add(v);
    System.out.println(v);没有运行过它的人可能认为这将导致一个无限循环,不过 Sun 没有这么傻。楼主自己看看它是怎么输出的。