Совет, который вам дали, это, в общем-то, груз хули.
И в C #, и в Java есть GC, которые пытаются оптимизировать быстрое восстановление множества мелких объектов. Они предназначены для решения одной и той же проблемы, они делают это немного по-разному, но как пользователь, технические различия в вашем подходе к их использованию минимальны, даже отсутствуют для большинства пользователей.
IDisposable
не имеет ничего общего с ГК как таковым. Это стандартный способ именования методов, которые иначе назывались бы close
, destroy
, dispose
и т. Д., И часто называются так в Java. Существует предложение для Java 7 добавить что-то очень похожее на ключевое слово using
, которое вызовет аналогичный close
метод.
«Деструкторы» в C # относятся к финализаторам - это было сделано намеренно, чтобы сбить с толку программистов C ++. :) Спецификация CLR сама называет их финализаторами, точно так же, как JVM.
Существует много различий между Java и C # / CLR (типы пользовательских значений, свойства, универсальные элементы и все семейство связанных функций, известных как Linq), но GC - это область, в которой вы можете разработать значительное количество программного обеспечения. прежде чем вам нужно много беспокоиться о разнице между ними.