0
回答
关于Spider对象的回收
注册华为云得mate10,2.9折抢先购!>>>   

@黄亿华 你好,想跟你请教个问题:

//Spider覆盖了finalize方法. 就是输出一行信息,如fianlize of Spider

FileCacheQueueScheduler fcqs = new FileCacheQueueScheduler(
"test");
Spider spider = Spider.create(new PageProcessor() {
private Site site = Site.me();
@Override
public void process(Page page) {
}
@Override
public Site getSite() {
return site;
}
});
spider.setScheduler(fcqs); // 为什么这种写法 就不会执行Finalize

spider.setScheduler(new FileCacheQueueScheduler("test")); //奇怪 这种写法会执行finalize
spider.run();
spider = null;
//fcqs = null; //加上这个语句 立即便可以执行Finalize
System.gc();


Thread.sleep(3000);
//

想问一下,没有执行finalize方法,并不代表该对象没被回收是吗? 还有其他途径可以验证有没被回收吗?

举报
zgw06629
发帖于3年前 0回/225阅
顶部