A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© harborbest 中级黑马   /  2013-4-24 16:17  /  1400 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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. }
复制代码
为什么这段代码会报堆栈溢出的错误!

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

1 个回复

倒序浏览
你这里new B()后,B里面又new A(),A里面又new B()........
结果产生了无数的A、B对象。
堆栈一共就那么大,当然会溢出了。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马