Недавно у меня был очень неправильный звуковой совет от "старшего" разработчика/коллеги в отношении сборщика мусора С#, такого как...
-
"Вам нужно использовать деструкторы везде в С#, потому что мусор на коллекционере нельзя полагаться ".
-
"Сборщик мусора С# не может быть думал, как мусор Java Коллектор".
Это звучит очень подозрительно для меня, насколько я знаю, различия между сборщиками мусора С# и Java выглядят следующим образом...
- С# - это мусор для генерации сборщик, Java - параллельная метка развертки в 1.6, когда G1 является новым default (generational) мусор коллекционер с Java 7 и имеет был необязательным, так как ~ 1.6.21. До как я знаю
- С# как язык имеет возможность
вручную утилизировать объекты, которые
реализовать
IDisposable
. Java должен всегда используйте сбор мусора, хотя некоторые структуры, такие как SWT требуют ручного вызова методов для освободить память в базовом собственный код.
Я понимаю, что Java и С# являются только языками, а сборщики мусора являются компонентом среды выполнения, однако для этого случая я конкретно говорю о Sun/Oracle JVM и Microsoft.NET Runtime.
Есть ли у кого-нибудь отзывы?