[英]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.