GC root is a term used in the context of garbage collection in Java. They are special objects for the garbage collector. As the name suggests, GC roots are starting points for the garbage collector processes. In general, all objects directly or indirectly referenced from a GC root are not garbage collected.