黑马程序员技术交流社区

标题: JAVA 堆栈溢出 [打印本页]

作者: harborbest    时间: 2013-4-24 16:17
标题: JAVA 堆栈溢出
本帖最后由 harborbest 于 2013-4-25 08:29 编辑
  1. import java.awt.Button;


  2. public class A {
  3.         private Button b ;
  4.         
  5.         public Button getB() {
  6.                 return b;
  7.         }

  8.         public void setB(Button b) {
  9.                 this.b = b;
  10.         }
  11.         
  12.         A(){
  13.                 b = new Button();
  14.                 B b = new B(this);
  15.         }
  16.         public static void main(String[] args){
  17.                 new A();
  18.         }
  19. }
  20. class B {
  21.         A past = new A();
  22.         B(A p){
  23.                 this.past = p;
  24.         }
  25. }
复制代码
为什么这段代码会报堆栈溢出的错误!
作者: JavaUtil    时间: 2013-4-24 16:45
你这里new B()后,B里面又new A(),A里面又new B()........
结果产生了无数的A、B对象。
堆栈一共就那么大,当然会溢出了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2