将对象属性赋为null,GC会回收吗?

J2EE 码拜 10年前 (2015-05-10) 1330次浏览 0个评论
 

GC回收是完全不确定的这个我知道,就是想问不仅仅在一个方法内将一个对象赋值为null,
而是将这个对象的属性赋为null,会不会起到类似于“精简对象”节约内存的效果?
因为刚刚看一个用户发帖问将User对象存Session好不好,我就突然想到可以将大多页面中几乎用不到的属性给赋为null,而只留下频繁使用的属性在User对象中。存入session,不知道这样有用不?

我觉得把一个对象中的一个属性赋值为 null 要不要被回收  完全取决这个对象是不是还在被引用

是将这个对象的属性赋为null,会不会起到类似于“精简对象”节约内存的效果 
将用完的对象赋值为null ,GC会在合适的时候去回收掉该对象的内存
引用 2 楼 magi1201 的回复:

是将这个对象的属性赋为null,会不会起到类似于“精简对象”节约内存的效果 
将用完的对象赋值为null ,GC会在合适的时候去回收掉该对象的内存

我就是问将属性设为null呢,可以吗

12分
引用 3 楼 finemi 的回复:

我就是问将属性设为null呢,可以吗

如果你的属性值指向的是对象的话,那么这个属性值会被收集的

8分
首先,session里面就不应该放很多个对象。除非业务需要。
其次,对象的属性赋值为null,当然会被回收了。你的说法,理论上可行,但实际中不会有人这么做的。完全多此一举,你搞了这么多的null属性,你还得注意什么地方会用这些个属性,到时候到处给你报空指针异常,你还得花精力支收这个烂摊子。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明将对象属性赋为null,GC会回收吗?
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!