java - Como o Garbage Collector pode saber rapidamente quais objetos não têm referências a eles?

Eu entendo que, em Java, se um objeto não tiver mais referências a ele, o coletor de lixo o recuperará algum tempo depois.

Mas como o coletor de lixo sabe que um objeto tem ou não referências associadas a ele?

O coletor de lixo está usando algum tipo de hashmap ou tabela?

Editar:

Por favor, note que não estou perguntando como geralmente funciona o gc. realmente, eu não estou perguntando isso.

estou perguntandoespecificamente Que como sabe quais objetos são vivos e quais estão mortos, com eficiências.

É por isso que digo em minha pergunta que o gc mantém algum tipo de hashmap ou conjunto e atualiza consistentemente o número de referências que um objeto possui?

questionAnswers(3)

yourAnswerToTheQuestion