方法中返回的对象,一般不会造成内存溢出,但是一下情况就是刚好造成的内容溢出:
如果对象的引用刚好被单例所持有的话,JVM就不会回收该引用。
1、创建对象
Info info = new Info();
new Info()的时候,会返回一个地址,并且将地址赋值给引用info,当这个引用被info持有的时候,java虚拟机会认为这个对象是有用的,不会回收。
2、方法中返回一个对象
private UiDataCenter.QrInfo genQrcInfo(QrActionInfo info, String aType, String id)
{
UiDataCenter.QrInfo qrInfo = new UiDataCenter.QrInfo();
if(null != info && Ut.isValidate(id) && StringUtil.isValidate(aType))
{
qrInfo.mainBatchID = info.mainBatchID;
qrInfo.subBatchID = info.subBatchID;
qrInfo.money = info.money;
qrInfo.qrId = id;
qrInfo.aType = aType;
}
return qrInfo;
}
<