ok.... lets look at this objectively. * by definition the JVM won't shut down til all user (non-daemon) threads finish executing. so.... if the garbage collector is a user thread -- how would the JVM ever shut down?