我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: [java]关于java[屏蔽]回收的程序。。。 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

霓棠烟鱼



性别: 帅哥 状态: 该用户目前不在线
等级: 希望之光
发贴: 1596
威望: 0
浮云: 1107
在线等级:
注册时间: 2007-01-04
最后登陆: 2008-06-29

5come5帮你背单词 [ outlaw /'autlo:/ n. 被追缉的罪犯,被放逐者;vt. 宣告…为不合法 ]


[java]关于java[屏蔽]回收的程序。。。

class Chair{
    static boolean gcrun=false;
    static boolean f=false;
    static int  created=0;
    static int  finalized=0;
    int i;
    Chair(){
        i=++created;
        if(created==47)
            System.out.println("Created 47");
    }
    public void finalize(){
        if(!gcrun){
            gcrun=true;
            System.out.println("Beginning to finalize after"+created+"Chairs have been  created");
        }
        if(i==47){
            System.out.println("Finalizing Chair #47,"+"Setting flag to stop Chair creation");
            f=true;
        }
        finalized++;
        if(finalized>=created)
            System.out.println("All"+finalized+"finalized");
    }
}
public class Garbage {
    public static void main(String[] args){
        while(!Chair.f){
            new Chair();
            new String("To take up space");
        }
        System.out.println("After all Chairs have been created:\n"+"Total created="+Chair.created+",total finalized="+Chair.finalized);
        if(args.length>0){
            if(args[0].equals("gc")||
              args[0].equals("all")){       
                System.out.println("gc():");
                System.gc();
            }
            if(args[0].equals("finalize")||args[0].equals("all")){
                System.out.println("runFinalization():");
                System.runFinalization();
            }
        }
        System.out.println("bye");
    }
}
书上的例子 关于垃圾回收调用finalize()函数的  结果如下
Created 47
Beginning to finalize after4791Chairs have been  created
Finalizing Chair #47,Setting flag to stop Chair creation
After all Chairs have been created:
Total created=33530,total finalized=6264
bye 

既然finalize()函数是在静态变量created=4791被调用的  怎么后面出现了Finalizing Chair #47,Setting flag  也就是i==47满足条件  是怎么回事啊 。。



[ 此贴被霓棠烟鱼在2007-11-04 18:03重新编辑 ]
顶端 Posted: 2007-11-04 17:57 | [楼 主]
zhd32



性别: 帅哥 状态: 该用户目前不在线
等级: 版主
家族: YD一族
发贴: 619
威望: 0
浮云: 543
在线等级:
注册时间: 2006-04-22
最后登陆: 2009-06-22

5come5帮你背单词 [ scratch /skræt/ vt. 搔,抓,勾销,删除;n. 抓,搔,抓伤,擦伤 ]


47是什么DD
magic number???
顶端 Posted: 2007-11-04 18:03 | [1 楼]
霓棠烟鱼



性别: 帅哥 状态: 该用户目前不在线
等级: 希望之光
发贴: 1596
威望: 0
浮云: 1107
在线等级:
注册时间: 2007-01-04
最后登陆: 2008-06-29

5come5帮你背单词 [ verge /və:d3ə/ n. 边缘 ]


Quote:
引用第1楼zhd32于2007-11-04 18:03发表的  :
47是什么DD
magic number???

随便赋的值。。。
顶端 Posted: 2007-11-07 10:39 | [2 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.008230(s) query 5, Time now is:11-22 15:20, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号