Hi,
JIT compiles IL to x86 (on x86 platform) that runs directly by processor,
while as interpreted code (like sripts) runs by interpretor program. It can
be compared as running compiled exe file with running interpretted VBS file.
JIT and GC are entirely different things. JIT is just in time compiler and
GC is responsible for memory management.
If I remember it correctly GC uses mark and collect algorithm.
The JIT compiles into native code and are kept compiled until tossed out for
resource-saving. Interpreted code is a it implies, interpreted for each call
to the script-code. Hence JITted is generally much faster than interpreted
script.