Остров изоляции, как правило, является проблемой в GC, которые используют счетчики ссылок. ObjectA и ObjectB в сценарии, который вы описали, поэтому оба имеют счетчик ссылок, равный 1, и поэтому не будут собираться даже , хотя ничто другое не может достичь его .
Однако в .NET этого не происходит, поскольку в .NET GC используется метка и алгоритм развертки . Он начинается с корней и создает граф объектов, поэтому только элементы, укорененные в корне, выживут в коллекции. Это означает, что ничто не может быть «изолированным»