title: Where is the new Object of String created when we concat using + operator
body: <p>I know this might be quite basic and probably pretty straight forward but i cannot clearly understand what will happen in this situation, so, here it goes.</p>
  
  <p>In the following code:</p>
  
  <pre><code>String str1 = "Hello";
  String str2 = "World";
  String str3 = new String("HelloWorld");
  String str4 = str1 + str2;
  </code></pre>
  
  <p>i know that str1 and str2 will create an object "Hello" and "World" respectively <strong>inside</strong> the <em>String Constant Pool</em>. While for str3 a new object is created <strong>outside</strong> the <em>String Constant Pool</em> which is pointing to "HelloWorld" that is created <strong>inside</strong> <em>String Constant Pool</em>.</p>
  
  <p>My question is, what will happen if i concat 2 or more string (<strong>using '+' or concat() method</strong>)?</p>
  
  <p>Will a new object be created <strong>outside</strong> the pool just like in the case of <strong>String str3</strong> or will str4 point directly at the object "HelloWorld" <strong>inside</strong> the <em>String Constant Pool</em></p>
  
  <blockquote>
    <p>PS : And <strong><em>IF</em></strong> it is the case similar as creation of new object <strong>outside</strong> the pool, then how does it happen without using the <strong><em>new</em></strong> keyword? </p>
  </blockquote>