Closures and oops_do

The GC uses C++ objects called closures to traverse managed pointers (aka "oops")...

Finding roots

Live objects are defined as those which are reachable from a set of root references. Each root reference is presented to the GC as the address of an oop, usually in a thread stack or static global structure.

Strong roots are located using ...

Rules for strong root traversal