這是我最近在採訪中被問到的一個問題:在'GC.Collect()'調用期間將收集哪些「隨機」對象?以下哪些對象符合垃圾回收的條件?
String a = new Random().Next(0, 1) ==1 ? "Whatever 1" : "Whatever 2";
String b = new WeakReference(new Random()).Target.Next(0, 1) == 1 ?
"Whatever 1" : "Whatever 2";
GC.Collect();
我回答說,這是具體實現的問題,它高度依賴於GC
實施和相應的弱引用語義。據我所知,C#規範沒有提供GC.Collect
應該做什麼的精確描述,以及弱引用應該如何處理。
但是,我的面試官想聽聽別的。
你太客氣了。我的回答是,如果事情存在可怕的錯誤......如果'Java'標籤也被添加到這個問題中, –
會很好。 – Bhushan