发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA

你好banq,请教

2005-09-03 18:39
赞助商链接

你好,banq, 请你给我深入培析一下JAVA中的内存泄露主要是怎么形成的?形成条件等?希望你这次不要再回答什么垃圾没有回收之类的,这个我也知道

2005-09-04 12:32

真是shit.没事找事。你这么牛b还问什么?就是知道也不告诉你。下面这个link你自己去看吧。
http://www-128.ibm.com/developerworks/library/j-leaks/index.html

2005-09-04 13:16

>内存泄露主要是怎么形成
简单地说:就是由于对象没有被垃圾回收机制回收,如果问会在什么情况下形成,各种可能性,这涉及到良好的编程风格了。

在编程时,使用单态或静态类时,使用到了类字段,在类字段中保存了一些其他对象引用,如果越来越多就发生内存泄漏,内存泄漏总是不在意发生的,如打开一个数据库连接忘记关闭,所以数据库开启就立即关闭,在J2EE中规定资源包括事务资源都是必须在一个servlet中service方法开启或关闭。

内存泄漏情况非常多,只要你用到内存,用到Collection;用到缓存,用到状态,都有可能内存泄漏,而且是一个对象串一个对象,可能在你当前场景中没有,但是在系统其他地方用到你这些对象,结果还是发生泄漏。

养成良好的编程习惯是关键,少用或不用单态或静态,使用对象时,关注其scope,当然如果你觉得烦琐的话,使用Jdon框架之类微容器自动照顾,但是使用Spring时注意单态获得对象方式,如果你在这个这个Spring管理的字段中hold一些其他对象,防止内存泄漏,这个问题已经在Spring其他贴中有所讨论,可查看精华贴:Spring真相等。

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系反馈 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com