If user passes a primitive type argument to println(), what exactly happens behind the scene?
<p>If user passes a primitive type argument to <code>println()</code>, what exactly happens behind the scene? e.g.</p>

<pre><code>int i =1;

System.out.println("My Int"+i);

//and in

System.out.println(i)
</code></pre>

<p>How does it print <code>"My Int 1"</code> and <code>"1"</code>, even though it needs a <code>String</code> object?</p>

<p><strong>updated..</strong></p>

<p>What I think is <code>AutoBoxing</code> comes into play. Is that true, too?</p>
