读书人

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

发布时间: 2012-02-22 19:36:55 作者: rapoo

垃圾回收为什么是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 有一个互相指向的引用
[解决办法]
没见过怎么用的?
[解决办法]
内存的分配是怎么样的呢
[解决办法]
参数传递
[解决办法]
标记一下,对这类东西总没耐心琢磨,有需要的时候看看
[解决办法]
将自身对象作为参数,去构造另一个对象

读书人网 >J2SE开发

热点推荐