<p>What's the difference between the inner workings of Java's JVM and .NET's CLR?</p>

<p>Perhaps a starting point would be, are they basically the same thing in their respective environments (Java > JVM > Machine code) (C# > CLR > IL).</p>

<hr>

<p><strong>Update:</strong>  Several people have alluded to the points I was trying to cover:</p>

<ol>
<li>Garbage Collection </li>
<li>Boxing/Unboxing</li>
<li>JIT debugging </li>
<li>Generics/Templates</li>
<li>Please feel free to suggest other good topics that differentiate the two.</li>
</ol>

<p><a href="https://stackoverflow.com/users/5056/george-mauer">@George Mauer</a> - this sounds very interesting:</p>

<blockquote>
  <p>Already posted this once but here is a <a href="http://www.artima.com/intv/anders.html" rel="nofollow noreferrer">series of interviews</a> with c# chief language designer Anders Hejlsberg. </p>
</blockquote>

From
here
. I couldn't have said it better (Well, with the exception of a flame war, this is a flameless place :-) ).
Hello,
Responding to your question seems
  fraught with peril by starting a flame
  war, so I'll proceed cautiously.
There are a number of fundamental
  technical similarities between the
  Java Runtime and the Common Language
  Runtime, including garbage collected
  memory, an intermediate language
  (Microsoft IL versus Java ByteCode),
  core system libraries, and support for
  fairly high level languages, code
  security, and deployment.
However, each of these 'similar' areas
  also have a number of sizable and
  small differences, and it's beyond the
  scope of a simple Forum post to
  describe most of them.
I would suggest asking a more
  targetted question about any of the
  various runtime features and component
  areas (e.g. memory management,
  compilation, system libraries,
  security, etc.) and then we can
  provide a more targetted response
  (e.g. a blog, a technical article, or
  some books).