首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

垃圾回收为什么是2个对象?解决方法

2012-02-22 
垃圾回收为什么是2个对象?classSnoochy{BoochyboochpublicSnoochy(){boochnewBoochy(this)}}classBooch

垃圾回收为什么是2个对象?
class   Snoochy{
Boochy   booch;
public   Snoochy(){booch=new   Boochy(this);}
}

class   Boochy{
Snoochy   snooch;
        public   Boochy(Snoochy   s){snooch=s;}
       
        public   static   void   main(String   arg[]){
        Snoochy   snoog=new   Snoochy();
        //System.out.println(booch);
        //System.out.println(snooch);
        System.out.println(snoog);
        snoog=null;
        }
}

booch=new   Boochy(this);这个怎么理解?好象没看到过呢。

[解决办法]

booch=new Boochy(this);
调用
public Boochy(Snoochy s){snooch=s;}


[解决办法]
用了两次new
[解决办法]
new 了两次啊
[解决办法]
可以理解,但是用法很怪异!
[解决办法]
不是很明白
[解决办法]
这个用法很正常啊,没有什么可奇怪的吧


只是把自己作为参数传递给新的对象
你可以理解
new Snoochy();
等同于常见的代码:
Snoochy s = new Snoochy();
Boochy b = new Boochy(s);
s.booch = b;

这样使得Snoochy 和Boochy 有一个互相指向的引用
[解决办法]
没见过怎么用的?
[解决办法]
内存的分配是怎么样的呢
[解决办法]
参数传递
[解决办法]
标记一下,对这类东西总没耐心琢磨,有需要的时候看看
[解决办法]
将自身对象作为参数,去构造另一个对象

热点排行