锁定老帖子 主题:关于java堆栈溢出的那些事
精华帖 (0) :: 良好帖 (0) :: 新手帖 (13) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-09-03
teasp 写道 jrockit免费的?太好了,这个工具在linux下能用不?
另外,楼主这句“用完的变量一定要记得让它等于null,否则执行gc()貌似是不给回收的”是严重错误的。 这个概念我还真的是很模糊,因为在调试的时候我发现有些变量new了,然后没有让他置为null,确实是不给回收的,所以才写了那么句话。。。 希望你能给解释一下。。。我不太懂java的内存回收机制。 |
|
返回顶楼 | |
发表时间:2009-09-03
最后修改:2009-09-04
|
|
返回顶楼 | |
发表时间:2009-09-03
|
|
返回顶楼 | |
发表时间:2009-09-03
jinyanhui2008 写道
在经常需要调用的地方将变量设成全局的甚至是静态的,我的操作是设成全局的了。图省事呢。呵呵,因为我的变量时全局都要调用的而且是频繁调用的。 用完的变量一定要记得让它等于null,否则执行gc()貌似是不给回收的。
|
|
返回顶楼 | |
发表时间:2009-09-03
hsbljyy 写道
jinyanhui2008 写道
在经常需要调用的地方将变量设成全局的甚至是静态的,我的操作是设成全局的了。图省事呢。呵呵,因为我的变量时全局都要调用的而且是频繁调用的。 用完的变量一定要记得让它等于null,否则执行gc()貌似是不给回收的。
是啊,太具体的也没有深入研究,肯定是还有其他地方在引用,我也说不上来是为啥,做程序员坐久了有的时候就没时间去深究了,已解决问题为最终目标了。 我说的那段话,因为我开始是每次用用到那个变量或者类的时候都去new一下,而且那个东西可能会频繁的访问,所以造成了资源的很大浪费,所以才写了上面的那段话。 |
|
返回顶楼 | |
发表时间:2009-09-03
最后修改:2009-09-03
jinyanhui2008 写道
hsbljyy 写道
jinyanhui2008 写道
在经常需要调用的地方将变量设成全局的甚至是静态的,我的操作是设成全局的了。图省事呢。呵呵,因为我的变量时全局都要调用的而且是频繁调用的。 用完的变量一定要记得让它等于null,否则执行gc()貌似是不给回收的。
是啊,太具体的也没有深入研究,肯定是还有其他地方在引用,我也说不上来是为啥,做程序员坐久了有的时候就没时间去深究了,已解决问题为最终目标了。 我说的那段话,因为我开始是每次用用到那个变量或者类的时候都去new一下,而且那个东西可能会频繁的访问,所以造成了资源的很大浪费,所以才写了上面的那段话。
“用完的变量一定要记得让它等于null”,你写这句话的时候是否考虑过会给很多人造成误解?
依稀记得Thinking in Java里面是这样说的,让变量等于null(也就是让这个引用指向null,不在引用这个对象),如果这个对象没有被其他地方使用,JVM就会在适当的时候回收对象。等于null并不回收,执行gc()也并不是说一定进行回收,只是建议垃圾回收机制回收,在Java里是无法人为控制垃圾回收的。
并不是所有对象不再使用时,就把引用指向null。没有建议这样做,也没有必要这样做。什么时候让一个引用指向null,不是有出栈进栈这个例子吗。 |
|
返回顶楼 | |
发表时间:2009-09-04
jrockit 看起来挺不错的工具,学习一下
|
|
返回顶楼 | |
发表时间:2009-09-04
jrockit确实不错,听说性能比JDK要好65%,特别是在内存处理方面。
不过没敢用在生产环境,感觉不是特别的稳定。 用它来查查问题,运行一些测试程序还是不错的。 |
|
返回顶楼 | |
发表时间:2009-09-04
teasp 写道 jrockit免费的?太好了,这个工具在linux下能用不?
另外,楼主这句“用完的变量一定要记得让它等于null,否则执行gc()貌似是不给回收的”是严重错误的。 看楼主的截图, jrockit是基于eclipse平台开发的RCP程序,肯定可以在linux下使用。 去找找看。应该有linux的下载链接的 |
|
返回顶楼 | |
发表时间:2009-09-04
jinyanhui2008 写道
hsbljyy 写道
jinyanhui2008 写道
在经常需要调用的地方将变量设成全局的甚至是静态的,我的操作是设成全局的了。图省事呢。呵呵,因为我的变量时全局都要调用的而且是频繁调用的。 用完的变量一定要记得让它等于null,否则执行gc()貌似是不给回收的。
是啊,太具体的也没有深入研究,肯定是还有其他地方在引用,我也说不上来是为啥,做程序员坐久了有的时候就没时间去深究了,已解决问题为最终目标了。 我说的那段话,因为我开始是每次用用到那个变量或者类的时候都去new一下,而且那个东西可能会频繁的访问,所以造成了资源的很大浪费,所以才写了上面的那段话。
|
|
返回顶楼 | |