论坛首页 Java企业应用论坛

关于java堆栈溢出的那些事

浏览 25926 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (13) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-09-10  
jinyanhui2008 写道
那么在执行完了之后,如果stack中不为空的时候,将stack置为null,是否也会清空内存呢?

会的。
看一下根集的相关概念。
0 请登录后投票
   发表时间:2009-09-10  
ZangXT 写道
jinyanhui2008 写道
那么在执行完了之后,如果stack中不为空的时候,将stack置为null,是否也会清空内存呢?

会的。
看一下根集的相关概念。

   这段代码看得出是在方法体内部。如果是这样的话,不管你设置stack为null与否(因为stack没有被外部所引用),在执行完,进行MinorGC就会回收的。去在一个方法中设置局部变量为null是多余并且妨碍阅读的做法。
0 请登录后投票
   发表时间:2009-09-11  
这个贴有意思,哈哈
0 请登录后投票
   发表时间:2009-09-12  
凤舞凰扬 写道
ZangXT 写道
jinyanhui2008 写道
那么在执行完了之后,如果stack中不为空的时候,将stack置为null,是否也会清空内存呢?

会的。
看一下根集的相关概念。

   这段代码看得出是在方法体内部。如果是这样的话,不管你设置stack为null与否(因为stack没有被外部所引用),在执行完,进行MinorGC就会回收的。去在一个方法中设置局部变量为null是多余并且妨碍阅读的做法。

哦,可能没有问清楚,我想问的是stack为全局变量的情况下。如果将stack=null,是否会清空啊?或者如果在全局变量下不将stack=null是否会在类调用完成后清空呢?
0 请登录后投票
   发表时间:2009-09-12  
http://developers.sun.com/learning/javaoneonline/2007/pdf/TS-2906.pdf
0 请登录后投票
   发表时间:2009-09-14  
NetBeans提供类似的内存监控功能,界面也有些相似;
JDK自带的JConsole也可辅助
0 请登录后投票
   发表时间:2009-09-16  
一直想找一个这样的工具,这下可好了,谢谢楼主
0 请登录后投票
   发表时间: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时回收。)
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics