Поток демона также является потоком, который продолжает работать даже после выхода из JVM.Из документации Oracle При запуске виртуальной машины Java обычно существует один поток, не являющийся демоном (который обычно вызывает метод с именем main некоторого назначенного класса).Виртуальная машина Java продолжает выполнять потоки до тех пор, пока не произойдет одно из следующих событий: • Был вызван метод выхода класса Runtime, и диспетчер безопасности разрешил выполнение операции выхода.• Все потоки, которые не являются потоками демонов, умерли, либо возвращаясь из вызова метода run, либо выбрасывая исключение, которое распространяется за пределы метода run.
Так что, если GC является потоком демона, он должен быть собственным потоком, порожденным во время выполнения Java, но может продолжать работать после выхода из JVM