我觉得这个问题很明显,但我认为仍然应该问这些问题是为了安全。
如果我有一个接受参数的类,并且我不断使用相同的引用名称但不同的参数调用同一个类,我是否必须将前一个类实例置空以防止ram被每个新实例所占用?例如
RandomClass className = new RandomClass(argument1);
while(className.classMethod() != null){
className = new RandomClass(argument i)
i++;
}
我假设带有参数的className
会在调用带有argument2的className
时被销毁吗?或者我必须
RandomClass className = new RandomClass(argument1);
while(className.classMethod() != null){
className = new RandomClass(argument i);
className = null;
i++;
}
为了安全起见?
答案 0 :(得分:3)
在进入循环之前,你有
className --> 1234 // an identifier of the object for our purposes
循环迭代后
className --> 9542
变量className
引用了一个不同的对象,现在你的程序不再拥有一个带有标识符1234的对象的引用。因此它最终将被垃圾收集。您不需要将null
分配给变量。 (有一些非常罕见的情况你会这样做,但不要去找那些麻烦。)
答案 1 :(得分:3)
不需要null变量,新的Java和C#/ C ++引擎将负责垃圾收集,RAM也不会丢失。