clearing doubts about value and reference types
<p>value type variables contain the actual data directly and reference type variables contain the reference to the actual data.</p>

<p>I think of this as: </p>

<p>l.h.s is value type and r.h.s is reference type</p>

<p><img src="http://i.stack.imgur.com/uxyKv.jpg" alt="enter image description here"></p>

<p>on the left hand side, if I copy <code>i</code> into <code>j</code>, a new memory location is filled with same original data (45).</p>

<p>on the right hand side, if I copy <code>k</code> to <code>l</code>, a new memory location is filled with the reference to the object; and this reference points to the actual object in memory.</p>

<p>now, I am confused about this reference type copying. here's a slight different thing:</p>

<p><img src="http://i.stack.imgur.com/CQ8JG.jpg" alt="enter image description here"></p>

<p>Here, the copy on the r.h.s makes <code>l</code> points to same location as <code>k</code>.</p>

<p>My question is <strong>1. "Which one is truer?"</strong> or is there more to it than I imagined?</p>

<p>Also, value types may be allocated on heap, depending upon the how jitter sees it fit, then <strong>2. Can we force a reference type to be allocated on stack?</strong></p>

<p>Sorry for sloppy image editing.</p>
