String created by constant expressions
<p>Consider following code:</p>

<blockquote>
<pre><code>String s = "Dear";
String s1 = "My"+ s;  
String s2 = "MyDear"; 
String s3 = "My"+"Dear";
</code></pre>
</blockquote>

<p>Here s1 and s3 are created by string constant expressions.</p>

<blockquote>
  <p>System.out.println("    s2 == s3 is " + (s2 == s3));   //true</p>
</blockquote>

<p>comes out to true because both s2 and s3 point to same interned String object but</p>

<blockquote>
  <p>System.out.println("    s1 == s2 is " + (s1 == s2));   //false</p>
</blockquote>

<p>comes out to fasle. Why?</p>
