在调用方法后,它是否在内存中保持分配?
private void AnyMethod()
{
new AnotherClass().AnotherMethod();
}
答案 0 :(得分:4)
调用该方法后,调用此方法的实例超出范围(因为它不再有任何指向它的引用),因此它有资格进行垃圾回收。因此,此实例将保留在内存中,直到实际的垃圾收集发生。此垃圾收集发生的确切时间当然取决于运行时的许多属性,如内存使用情况,......
答案 1 :(得分:3)
嗯,这取决于构造函数和该方法中的内容,但通常不是。
当方法调用结束时,实例化的类不再有任何引用,因此每当GC出现时它都可以被垃圾收集,这可能会因GC设置和内存压力而变化。
虽然您可以在构造函数或方法中执行类似的操作,但这会阻止实例超出范围:
SomeExternalClass.SomeInstance = this;