[英]Regarding memory size, cleaning up objects
考虑如下示例
class B
{
int x;
}
class A
{
int a;
int b;
B b1 = new B();
void testMethod()
{
for (int i = 1; i < 10; i++)
b1 = new B();
}
}
class MainClass //Will never close this application
{
static void Main(object[] args)
{
A a1 = new A();
a1.testMethod();
}
}
在上面的示例中,每次在循环中都创建一个新的B类对象。 因此,这里的问题是,当我将新对象分配给b1时,将清除前一个对象或保留它的内存。
如果没有清理并增加内存,该如何清理?
每次创建B
的新对象
b1 = new B();
存储在b1
的原始对象变得不可访问。 这意味着它有资格进行垃圾回收。 这并不意味着它会从内存虽然立即清理!
符合GC条件的对象实际上将在“将来的某个时候”进行GC处理。 我们不知道,也不需要知道确切的时间。 只要相信GC。
换句话说,在运行testMethod
, B
9个对象将有资格使用GC或已被收集,而第十个对象将保留存储在变量b1
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.