以下是一個c#代碼,其中我必須在整個代碼後面找出對象的數量(DOG)和引用。起初我計算它是4個對象和8個引用。但是在看到這個問題之後 Garbage collector test(這說垃圾收集器只有在系統內存不足和其他類似原因時才運行),我懷疑對象的數量是否應該是6 ?.下面的問題沒有提到該程序獲得的內存。c#代碼中沒有對象和引用,c中的垃圾回收#
所以我的問題是如果我得到這種類型的問題應該是我的答案(4,6或應該說這取決於內存)?
Dog rover = new Dog();
rover.Breed = 「Greyhound」;
Dog rinTinTin = new Dog();
Dog fido = new Dog();
Dog quentin = fido;
Dog spot = new Dog();
spot.Breed = 「Dachshund」;
spot = rover;
Dog lucky = new Dog();
lucky.Breed = 「Beagle」;
Dog charlie = fido;
fido = rover;
rinTinTin = lucky;
Dog laverne = new Dog();
laverne.Breed = 「pug」;
charlie = laverne;
lucky = rinTinTin;
//沒有對象和參考的在這一點?(DOG對象不考慮字符串對象)
希望這問題不傻。
我認爲你必須忽略這個問題的垃圾回收,因爲它在運行時是不確定的。還要注意,字符串是對象,並且在您的示例代碼中,「Dog.Breed」是對字符串的引用。 – 2015-02-11 09:25:49
@MthetheWWatson ....我只對狗物件感興趣。但謝謝你指出。 – dividedbyzero 2015-02-11 09:29:46