学习java中,请教为什么是这样的结果呢?

angle097113 2005-08-25 11:09:46
import java.lang.ref.*;

class VeryBig {
private static final int SZ = 10000;

private double[] d = new double[SZ];

private String ident;

public VeryBig(String id) {
ident = id;
}

public String toString() {
return ident;
}

public void finalize() {
System.out.println("Finalizing " + ident);
}
}

public class References {
private static ReferenceQueue rq = new ReferenceQueue();

public static void checkQueue(String ss) {
Object inq = rq.poll();
if (inq != null)
System.out.println("In " + ss + " queue: " + (VeryBig) ((Reference) inq).get());
}

public static void main(String[] args) {
int size = 10;
if (args.length > 0) {
size = Integer.parseInt(args[0]);
}

System.out.println("Soft-------");
SoftReference[] sa = new SoftReference[size];
for (int i = 0; i < sa.length; i++) {
sa[i] = new SoftReference(new VeryBig("Soft" + i), rq);
System.out.println("Just Soft Createed: " + (VeryBig) sa[i].get());
checkQueue("Soft");
}

System.out.println("Weak-------");
WeakReference[] wa = new WeakReference[size];
for (int i = 0; i < wa.length; i++) {
wa[i] = new WeakReference(new VeryBig("Weak" + i), rq);
System.out.println("Just Weak Createed: " + (VeryBig) wa[i].get());
checkQueue("Weak");
}

System.out.println("Phantom-------");
PhantomReference[] pa = new PhantomReference[size];
for (int i = 0; i < pa.length; i++) {
pa[i] = new PhantomReference(new VeryBig("Phantom" + i), rq);
System.out.println("Just Phantom Createed: " + (VeryBig) pa[i].get());
checkQueue("Phantom");
}

SoftReference s = new SoftReference(new VeryBig("Soft"));
WeakReference w = new WeakReference(new VeryBig("Weak"));
System.out.println("Cabage Collection");
System.gc();

}


}


C:\>java References 5
Soft-------
Just Soft Createed: Soft0
Just Soft Createed: Soft1
Just Soft Createed: Soft2
Just Soft Createed: Soft3
Just Soft Createed: Soft4
Weak-------
Just Weak Createed: Weak0
Just Weak Createed: Weak1
Just Weak Createed: Weak2
Just Weak Createed: Weak3
Just Weak Createed: Weak4
Phantom-------
Finalizing Weak0
Finalizing Weak1
Finalizing Weak2
Finalizing Weak3
Finalizing Weak4
Just Phantom Createed: null
In Phantom queue: null
Just Phantom Createed: null
In Phantom queue: null
Just Phantom Createed: null
In Phantom queue: null
Just Phantom Createed: null
In Phantom queue: null
Just Phantom Createed: null
In Phantom queue: null
Finalizing Phantom3
Finalizing Phantom2
Finalizing Phantom4
Finalizing Phantom1
Finalizing Phantom0
Cabage Collection
Finalizing Weak

...全文
203 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
angle097113 2005-08-26
  • 打赏
  • 举报
回复
说的还有道理,ABCatai(ABCatai)
你是不是没事干啊?
ABCatai 2005-08-25
  • 打赏
  • 举报
回复
varkychan(kevinchan)说的有理!!
cyicecream 2005-08-25
  • 打赏
  • 举报
回复
路过,飘过~~
varkychan 2005-08-25
  • 打赏
  • 举报
回复
回复人: angle097113(深思不解) ( ) 信誉:100 2005-08-25 14:06:00

我想麻烦二位你们仔细看了没有啊,就乱说“什么问题啊,说清楚啊,”
这说的很清楚了,是你们自己看不明白吧,

to angle097113(深思不解) :
这样的态度,叫人如何帮你?明明是自己没有把问题说清楚.你就说了"学习java中,请教为什么是这样的结果呢?".你要什么的结果?你希望输出什么结果?你根本没说,别人怎么知道你所说的这样的结果是哪里不符合你的要求?

你至少也要加点描述,说明一下你的问题所在,别人才好忙了解你的问题,才能及时的回答你的问题,你就这样贴出一块代码,别人哪有时间去看啊,要别人去分析每行代码,然后猜测你所要的结果是什么?

问问题也是有学问的,而且,你是在寻人帮助,你这样的态度是不行的,说别人"乱说","没看清楚".希望你能改正你的态度问题.也希望别的朋友也要注意.
大河V5 2005-08-25
  • 打赏
  • 举报
回复
贴出一堆代码就让人看,哪个会看啊?!
我的运行结果:(和你的不一样)
Soft-------
Just Soft Createed: Soft0
Just Soft Createed: Soft1
Just Soft Createed: Soft2
Just Soft Createed: Soft3
Just Soft Createed: Soft4
Just Soft Createed: Soft5
Just Soft Createed: Soft6
Just Soft Createed: Soft7
Just Soft Createed: Soft8
Just Soft Createed: Soft9
Weak-------
Just Weak Createed: Weak0
Just Weak Createed: Weak1
Just Weak Createed: Weak2
Just Weak Createed: Weak3
Just Weak Createed: Weak4
Just Weak Createed: Weak5
Just Weak Createed: Weak6
Just Weak Createed: Weak7
Just Weak Createed: Weak8
Just Weak Createed: Weak9
Phantom-------
Finalizing Weak7
Finalizing Weak8
Finalizing Weak9
Finalizing Weak0
Finalizing Weak1
Finalizing Weak2
Finalizing Weak3
Finalizing Weak4
Finalizing Weak5
Finalizing Weak6
Just Phantom Createed: null
In Phantom queue: null
Just Phantom Createed: null
In Phantom queue: null
Just Phantom Createed: null
In Phantom queue: null
Just Phantom Createed: null
In Phantom queue: null
Just Phantom Createed: null
In Phantom queue: null
Just Phantom Createed: null
In Phantom queue: null
Just Phantom Createed: null
In Phantom queue: null
Just Phantom Createed: null
In Phantom queue: null
Just Phantom Createed: null
In Phantom queue: null
Just Phantom Createed: null
In Phantom queue: null
Cabage Collection
Finalizing Soft0
Finalizing Soft1
Finalizing Soft2
Finalizing Soft3
Finalizing Soft4
Finalizing Soft5
Finalizing Soft6
Finalizing Soft7
Finalizing Soft8
Finalizing Soft9
Finalizing Phantom0
Finalizing Phantom1
Finalizing Phantom2
Finalizing Phantom3
Finalizing Phantom4
Finalizing Phantom5
Finalizing Phantom6
Finalizing Phantom7
Finalizing Phantom8
Finalizing Phantom9
Finalizing Weak

不知道你要什么样的结果?
angle097113 2005-08-25
  • 打赏
  • 举报
回复
我想麻烦二位你们仔细看了没有啊,就乱说“什么问题啊,说清楚啊,”
这说的很清楚了,是你们自己看不明白吧,
_-_-_-_- 2005-08-25
  • 打赏
  • 举报
回复
你到底是什么问题啊?
说清楚啊
superslash 2005-08-25
  • 打赏
  • 举报
回复
什么问题啊,没明白
angle097113 2005-08-25
  • 打赏
  • 举报
回复
这么长时间都没有人回答
java版的大师们都这么不屑啊!
下午看看再决定什么......

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧