Ответ 1
Разница между CLR (.Net) GC и JVM GC, а не самими языками. Оба могут быть изменены и спецификация их поведения свободна, чтобы это можно было изменить, не влияя на правильность программ.
Есть некоторые исторические различия, в основном из-за того, что .Net разрабатывается с уроками эволюции java (и других платформ на основе gc). В следующем случае не предполагайте, что .Net был каким-то образом превосходным, потому что он включал функциональность с самого начала, это просто результат следующего.
Заметная очевидная разница заключается в том, что MS GC раскрывает свой характер поколений (через GC api), это, вероятно, останется верным в течение некоторого времени, поскольку это очевидный подход к принятию на основе поведения, которое проявляет большинство программ: Most распределения крайне недолговечны.
У начального JVM не было коллективных сборщиков мусора, хотя эта функция была быстро добавлена.
Первые коллекторы поколений, реализованные в Sun Oracle, а другие - Mark и Sweep. Было осознано, что подход с меткой-разверткой и компактностью приведет к значительному улучшению местоположения памяти, оправдывая дополнительные накладные расходы на копирование. Среда CLR дебютировала с таким поведением.
Разница между Sun Oracle и реализация Microsoft "ethos" - одна из конфигураций.
Sun предоставляет огромное количество опций (в командной строке) для настройки аспектов GC или переключения между различными режимами. Многие опции имеют -X или -XX, чтобы указать на отсутствие поддержки у разных версий или поставщиков. CLR, напротив, обеспечивает отсутствие конфигурации; ваш единственный реальный вариант - использование серверных или клиентских коллекционеров, которые оптимизируют для латентности пропускной способности соответственно.
Активные исследования в стратегиях GC продолжаются в обеих компаниях (и в реализациях с открытым исходным кодом). Существующие подходы, используемые в самых последних реализациях GC, относятся к областям отдельных областей (улучшая локальность и позволяя коллекции eden потенциально не вызвать полную паузу), а также подходы к обучению, которые пытаются избежать размещения определенных распределений в поколении eden.