锁定老帖子 主题:关于java堆栈溢出的那些事
精华帖 (0) :: 良好帖 (0) :: 新手帖 (13) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-09-10
jinyanhui2008 写道 那么在执行完了之后,如果stack中不为空的时候,将stack置为null,是否也会清空内存呢?
会的。 看一下根集的相关概念。 |
|
返回顶楼 | |
发表时间:2009-09-10
ZangXT 写道 jinyanhui2008 写道 那么在执行完了之后,如果stack中不为空的时候,将stack置为null,是否也会清空内存呢?
会的。 看一下根集的相关概念。 这段代码看得出是在方法体内部。如果是这样的话,不管你设置stack为null与否(因为stack没有被外部所引用),在执行完,进行MinorGC就会回收的。去在一个方法中设置局部变量为null是多余并且妨碍阅读的做法。 |
|
返回顶楼 | |
发表时间:2009-09-11
这个贴有意思,哈哈
|
|
返回顶楼 | |
发表时间:2009-09-12
凤舞凰扬 写道 ZangXT 写道 jinyanhui2008 写道 那么在执行完了之后,如果stack中不为空的时候,将stack置为null,是否也会清空内存呢?
会的。 看一下根集的相关概念。 这段代码看得出是在方法体内部。如果是这样的话,不管你设置stack为null与否(因为stack没有被外部所引用),在执行完,进行MinorGC就会回收的。去在一个方法中设置局部变量为null是多余并且妨碍阅读的做法。 哦,可能没有问清楚,我想问的是stack为全局变量的情况下。如果将stack=null,是否会清空啊?或者如果在全局变量下不将stack=null是否会在类调用完成后清空呢? |
|
返回顶楼 | |
发表时间:2009-09-12
http://developers.sun.com/learning/javaoneonline/2007/pdf/TS-2906.pdf
|
|
返回顶楼 | |
发表时间:2009-09-14
NetBeans提供类似的内存监控功能,界面也有些相似;
JDK自带的JConsole也可辅助 |
|
返回顶楼 | |
发表时间:2009-09-16
一直想找一个这样的工具,这下可好了,谢谢楼主
|
|
返回顶楼 | |
发表时间:2009-09-21
jinyanhui2008 写道 凤舞凰扬 写道 ZangXT 写道 jinyanhui2008 写道 那么在执行完了之后,如果stack中不为空的时候,将stack置为null,是否也会清空内存呢?
会的。 看一下根集的相关概念。 这段代码看得出是在方法体内部。如果是这样的话,不管你设置stack为null与否(因为stack没有被外部所引用),在执行完,进行MinorGC就会回收的。去在一个方法中设置局部变量为null是多余并且妨碍阅读的做法。 哦,可能没有问清楚,我想问的是stack为全局变量的情况下。如果将stack=null,是否会清空啊?或者如果在全局变量下不将stack=null是否会在类调用完成后清空呢? 你应该这样理解。当你把stack设置为null的时候,也就是你当前对象不存在对stack对象的引用,这样的话,也就降低了stack对象被根引用的可能性(比如说你当前对象存在根引用,那么它所引用的对象也不会被回收)。如果你的stack对象是在当前对象内创建的,如果没有传递到外部,那么它就会在GC时回收。(其实这里有一个比较的情况,也就是你当前对象如果也能确保不被根引用,那么去设置stack = null其实是多余的了,因为它会同当前对象一起在GC时回收。) |
|
返回顶楼 | |