LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 5712|回复: 21

JVM垃圾回收判定问题。

[复制链接]
自由狼-台风 该用户已被删除
发表于 2008-6-19 01:21:32 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2008-6-19 09:27:28 | 显示全部楼层
这种情况的发生是程序的错误造成的。Java 的垃圾收集机制只是简化程序员的负担,减少出错机会而已,但是没有一种编程语言能够避免程序员的错误。

回到这个例子,实现第 3 步的程序员显然有责任在代码中判断哪些对象不再需要放在 List 中,而把这个引用清除。
回复 支持 反对

使用道具 举报

自由狼-台风 该用户已被删除
 楼主| 发表于 2008-6-19 10:12:12 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

发表于 2008-6-19 18:31:54 | 显示全部楼层
不知道jdk的loger是什么东西,没有用过,为什么不用log4j作日志那?重来没有碰到过这个问题。
回复 支持 反对

使用道具 举报

自由狼-台风 该用户已被删除
 楼主| 发表于 2008-6-19 19:04:28 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

发表于 2008-6-19 22:00:18 | 显示全部楼层
这个问题只能是程序逻辑解决,对象被一只指着是java的大忌,所以,不熟悉的lib不要随便用.
回复 支持 反对

使用道具 举报

发表于 2008-6-19 22:16:46 | 显示全部楼层
看了一下jdk的LogManager觉得还是你自己的逻辑问题,它只是提供一个Loger的管理功能,应该重复使用log不应该是一只add log吧?贴出代码一起研究研究阿。
回复 支持 反对

使用道具 举报

发表于 2008-6-19 22:26:10 | 显示全部楼层
public static synchronized Logger getLogger(String name) {
        LogManager manager = LogManager.getLogManager();
        Logger result = manager.getLogger(name);
        if (result == null) {
            result = new Logger(name, null);
            manager.addLogger(result);
            result = manager.getLogger(name);
        }
        return result;
    }
这个是getLogger的实现,如果name有规划的话,系统会自动利用原来的log的,每个名字保留一个,这样应该不会有很多垃圾阿?
回复 支持 反对

使用道具 举报

发表于 2008-6-19 22:29:06 | 显示全部楼层
不知道你的loger是怎么得到的,如果是用Logger.getLogger(name)取得的,应该没有问题,它不允许name=null的。
回复 支持 反对

使用道具 举报

自由狼-台风 该用户已被删除
 楼主| 发表于 2008-6-20 15:57:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表